diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2011-04-11 23:25:55 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2011-04-11 23:25:55 +0200 |
commit | efd988a93f437b050627727fd1bd9041764b2de7 (patch) | |
tree | 1d91d51ce8fb775732b18193c8a495d332e29e7b | |
parent | 1ed6f2b800832dceb40515f22c11ae33936c3b94 (diff) | |
parent | 7f8bec5a9a9b9188ab7d8cbbec5f93343d7089a0 (diff) |
Merge branch 'master' of git+ssh://openadk.org/git/openadk
46 files changed, 1097 insertions, 686 deletions
diff --git a/jtools/Makefile b/jtools/Makefile index 23c90534f..5106df2e6 100644 --- a/jtools/Makefile +++ b/jtools/Makefile @@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk TARGETS:= ifneq ($(ADK_PACKAGE_OPENJDK),) -TARGETS+=fastjar gcj classpath ecj +TARGETS+=fastjar gcj ecj jikes jamvm classpath ant openjdk endif TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS)) diff --git a/jtools/ant/Makefile b/jtools/ant/Makefile new file mode 100644 index 000000000..666e1e8cb --- /dev/null +++ b/jtools/ant/Makefile @@ -0,0 +1,34 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(TOPDIR)/rules.mk + +PKG_NAME:= ant +PKG_VERSION:= 1.8.2 +PKG_RELEASE:= 1 +PKG_MD5SUM:= 63220327925ace13756ae334c55a3baa +PKG_SITES:= http://www.apache.org/dist/ant/source/ + +DISTFILES:= apache-$(PKG_NAME)-$(PKG_VERSION)-src.tar.bz2 +WRKDIST= $(WRKDIR)/apache-$(PKG_NAME)-$(PKG_VERSION) + +include ../rules.mk + +install: ${STAGING_JAVA_HOST_DIR}/usr/bin/ant + +$(WRKBUILD)/.compiled: ${WRKDIST}/.prepared + cd $(WRKBUILD)/lib/optional; wget http://openadk.org/distfiles/junit-4.9b2.jar + cp $(STAGING_JAVA_HOST_DIR)/usr/share/ecj.jar $(WRKBUILD)/lib/optional + cd ${WRKBUILD}; export BOOTJAVAC_OPTS="-bootclasspath $(STAGING_JAVA_HOST_DIR)/usr/share/classpath/glibj.zip" \ + BOOTCLASSPATH="$(STAGING_JAVA_HOST_DIR)/usr/share/jamvm/classes.zip:$(STAGING_JAVA_HOST_DIR)/usr/share/classpath/glibj.zip" \ + LD_LIBRARY_PATH=$(STAGING_JAVA_HOST_DIR)/usr/lib:$(STAGING_JAVA_HOST_DIR)/usr/lib64 \ + JAVA_HOME=$(STAGING_JAVA_HOST_DIR)/usr/lib/jvm ; \ + $(BASH) build.sh + touch $@ + +${STAGING_JAVA_HOST_DIR}/usr/bin/ant: $(WRKBUILD)/.compiled + cd $(WRKBUILD)/dist; \ + $(CP) bin/* $(STAGING_JAVA_HOST_DIR)/usr/bin ; \ + $(CP) lib/* $(STAGING_JAVA_HOST_DIR)/usr/lib + +include $(TOPDIR)/mk/tools.mk diff --git a/jtools/ant/junit-4.9b2.jar b/jtools/ant/junit-4.9b2.jar Binary files differnew file mode 100644 index 000000000..aec30a07f --- /dev/null +++ b/jtools/ant/junit-4.9b2.jar diff --git a/jtools/ecj/Makefile b/jtools/ecj/Makefile index a67e9ebd8..c4ab831e4 100644 --- a/jtools/ecj/Makefile +++ b/jtools/ecj/Makefile @@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:= ecj PKG_VERSION:= 1 -PKG_RELEASE:= 1 +PKG_RELEASE:= 2 PKG_MD5SUM:= 63220327925ace13756ae334c55a3baa include ../rules.mk @@ -26,8 +26,12 @@ ${STAGING_JAVA_HOST_DIR}/usr/bin/ecj: ${STAGING_JAVA_HOST_DIR}/usr/bin/ecj chmod u+x ${STAGING_JAVA_HOST_DIR}/usr/bin/ecj # put a wrapper for java here - echo "env LD_LIBRARY_PATH=$(STAGING_JAVA_HOST_DIR)/usr/lib:$(STAGING_JAVA_HOST_DIR)/usr/lib64 ${STAGING_JAVA_HOST_DIR}/usr/bin/gij \$$@" > \ + echo "env LD_LIBRARY_PATH=$(STAGING_JAVA_HOST_DIR)/usr/lib:$(STAGING_JAVA_HOST_DIR)/usr/lib64 ${STAGING_JAVA_HOST_DIR}/usr/bin/gij \"\$$@\"" > \ ${STAGING_JAVA_HOST_DIR}/usr/bin/java chmod u+x ${STAGING_JAVA_HOST_DIR}/usr/bin/java + rm ${STAGING_JAVA_HOST_DIR}/usr/lib/jvm/bin/java + rm ${STAGING_JAVA_HOST_DIR}/usr/lib/jvm/jre/bin/java + cp ${STAGING_JAVA_HOST_DIR}/usr/bin/java ${STAGING_JAVA_HOST_DIR}/usr/lib/jvm/bin/java + cp ${STAGING_JAVA_HOST_DIR}/usr/bin/java ${STAGING_JAVA_HOST_DIR}/usr/lib/jvm/jre/bin/java include $(TOPDIR)/mk/tools.mk diff --git a/jtools/gcj/Makefile b/jtools/gcj/Makefile index 7ccd03c15..ea41ca671 100644 --- a/jtools/gcj/Makefile +++ b/jtools/gcj/Makefile @@ -26,9 +26,9 @@ $(WRKBUILD)/.configured: ${WRKDIST}/.prepared --enable-java-home \ --enable-languages=java \ --with-ffi \ - --with-mpc=$(STAGING_HOST_DIR)/usr \ - --with-mpfr=$(STAGING_HOST_DIR)/usr \ - --with-gmp=$(STAGING_HOST_DIR)/usr \ + --with-mpc=$(STAGING_HOST_DIR) \ + --with-mpfr=$(STAGING_HOST_DIR) \ + --with-gmp=$(STAGING_HOST_DIR) \ --disable-libmudflap \ --disable-libgomp \ --disable-biarch \ diff --git a/jtools/jamvm/Makefile b/jtools/jamvm/Makefile new file mode 100644 index 000000000..defdbd713 --- /dev/null +++ b/jtools/jamvm/Makefile @@ -0,0 +1,39 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(TOPDIR)/rules.mk + +PKG_NAME:= jamvm +PKG_VERSION:= 1.5.4 +PKG_RELEASE:= 1 +PKG_MD5SUM:= 63220327925ace13756ae334c55a3baa +PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=jamvm/} + +ifeq (Darwin,${OStype}) +CC_FOR_BUILD:=${CC_FOR_BUILD} -m32 +CXX_FOR_BUILD:=${CXX_FOR_BUILD} -m32 +endif + +include ../rules.mk + +install: ${STAGING_JAVA_HOST_DIR}/usr/bin/jamvm + +$(WRKBUILD)/.configured: ${WRKDIST}/.prepared + cd $(WRKBUILD); env \ + CC='${CC_FOR_BUILD}' \ + CXX='${CXX_FOR_BUILD}' \ + ./configure \ + --prefix=/usr \ + --with-classpath-install-dir=$(STAGING_JAVA_HOST_DIR)/usr + touch $@ + +$(WRKBUILD)/.compiled: ${WRKDIST}/.configured + ${MAKE} -C ${WRKBUILD} $(MAKE_TRACE) + touch $@ + +${STAGING_JAVA_HOST_DIR}/usr/bin/jamvm: $(WRKBUILD)/.compiled + ${MAKE} -C ${WRKBUILD} DESTDIR=$(STAGING_JAVA_HOST_DIR) install $(MAKE_TRACE) + $(CP) ${STAGING_JAVA_HOST_DIR}/usr/bin/jamvm ${STAGING_JAVA_HOST_DIR}/usr/lib/jvm/bin/java + $(CP) ${STAGING_JAVA_HOST_DIR}/usr/bin/jamvm ${STAGING_JAVA_HOST_DIR}/usr/lib/jvm/jre/bin/java + +include $(TOPDIR)/mk/tools.mk diff --git a/jtools/jikes/Makefile b/jtools/jikes/Makefile new file mode 100644 index 000000000..c26a0f45b --- /dev/null +++ b/jtools/jikes/Makefile @@ -0,0 +1,31 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(TOPDIR)/rules.mk + +PKG_NAME:= jikes +PKG_VERSION:= 1.22 +PKG_RELEASE:= 1 +PKG_MD5SUM:= 14d4bdfac236e347d806c6743dba48c6 +PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=jikes/Jikes/1.22/} + +DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2 + +include ../rules.mk + +install: ${STAGING_JAVA_HOST_DIR}/usr/bin/jikes + +$(WRKBUILD)/.configured: ${WRKDIST}/.prepared + (cd $(WRKBUILD); ./configure --prefix=/usr); + touch $@ + +$(WRKBUILD)/.compiled: ${WRKDIST}/.configured + ${MAKE} -C ${WRKBUILD} $(MAKE_TRACE) + touch $@ + +${STAGING_JAVA_HOST_DIR}/usr/bin/jikes: $(WRKBUILD)/.compiled + ${MAKE} -C ${WRKBUILD} DESTDIR=$(STAGING_JAVA_HOST_DIR) install $(MAKE_TRACE) + $(CP) ${STAGING_JAVA_HOST_DIR}/usr/bin/jikes ${STAGING_JAVA_HOST_DIR}/usr/lib/jvm/bin/javac + $(CP) ${STAGING_JAVA_HOST_DIR}/usr/bin/jikes ${STAGING_JAVA_HOST_DIR}/usr/lib/jvm/jre/bin/javac + +include $(TOPDIR)/mk/tools.mk diff --git a/jtools/openjdk/Makefile b/jtools/openjdk/Makefile new file mode 100644 index 000000000..17fe6bbf8 --- /dev/null +++ b/jtools/openjdk/Makefile @@ -0,0 +1,90 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(TOPDIR)/rules.mk + +PKG_NAME:= openjdk +PKG_VERSION:= 6 +PKG_EXTRAVER:= b22-28_feb_2011 +PKG_RELEASE:= 1 +PKG_MD5SUM:= 2d2bbbb0f9b81f1fec41ec730da8a933 \ + fd3f35e8a8a2ef9a64c035ed66cea06d \ + ef7a8b3624ea904bf584bc46d79b5e75 \ + bc95c133620bd68c161cac9891592901 \ + 91adfd41e6f001add4f92ae31216b1e3 \ + d526d0848c88607ce4e3a0a4edb75d50 +PKG_DESCR:= OpenJDK Java VM +PKG_SECTION:= lang +PKG_URL:= http://openjdk.org/ +PKG_SITES:= http://download.java.net/openjdk/jdk6/promoted/b22/ \ + http://mirror.netcologne.de/apache.org/xml/xalan-j/binaries/ \ + http://icedtea.classpath.org/download/drops/ \ + http://icedtea.classpath.org/download/source/ + +# autotools infrastructure for OpenJDK +ICEDTEA_NAME:= icedtea6 +ICEDTEA_VERSION:= 1.10 + +# bootstrap JARs +XALAN_NAME= xalan-j +XALAN_VERSION= 2_7_0 + +# override generic extraction +EXTRACT_OVERRIDE:= 1 +DISTFILES:= openjdk-$(PKG_VERSION)-src-$(PKG_EXTRAVER).tar.gz \ + $(ICEDTEA_NAME)-$(ICEDTEA_VERSION).tar.gz \ + jaxp144_01.zip \ + jdk6-jaf-b20.zip \ + jdk6-jaxws-b20.zip \ + ${XALAN_NAME}_${XALAN_VERSION}-bin.tar.gz + +WRKDIST= ${WRKDIR} +WRKSRC= ${WRKDIST}/${ICEDTEA_NAME}-${ICEDTEA_VERSION} + +include ../rules.mk + +OPENJDK_NATIVE_ENV+= JAVACFLAGS="-cp ${STAGING_JAVA_HOST_DIR}/usr/share/java/libgcj-4.5.2.jar" +OPENJDK_NATIVE_ENV+= DYLD_LIBRARY_PATH=$(STAGING_JAVA_HOST_DIR)/usr/lib:$(STAGING_JAVA_HOST_DIR)/usr/lib64 +OPENJDK_NATIVE_ENV+= LD_LIBRARY_PATH=$(STAGING_JAVA_HOST_DIR)/usr/lib:$(STAGING_JAVA_HOST_DIR)/usr/lib64 +OPENJDK_NATIVE_ENV+= ADK_ECJ=$(STAGING_JAVA_HOST_DIR)/usr/bin/ecj PATH=$$PATH:$(STAGING_JAVA_HOST_DIR)/usr/bin + +install: ${STAGING_JAVA_HOST_DIR}/bootstrap-jdk/bin/java + +$(WRKDIST)/.extract: $(WRKDIST)/.extract_done + cd ${WRKDIST}; mkdir openjdk-$(PKG_VERSION); \ + tar xzf $(TOPDIR)/dl/openjdk-$(PKG_VERSION)-src-$(PKG_EXTRAVER).tar.gz -C openjdk-$(PKG_VERSION) + cd $(WRKDIST); tar xzf $(TOPDIR)/dl/$(ICEDTEA_NAME)-$(ICEDTEA_VERSION).tar.gz + cd ${WRKDIST}; tar xzf ${TOPDIR}/dl/${XALAN_NAME}_${XALAN_VERSION}-bin.tar.gz + mkdir -p ${WRKBUILD}/drops + cd ${TOPDIR}/dl; cp jaxp144_01.zip jdk6-jaf-b20.zip jdk6-jaxws-b20.zip ${WRKBUILD}/drops + cd $(WRKDIST); patch -p0 < ${TOPDIR}/jtools/openjdk/patches/*.patch + touch $@ + +$(WRKDIST)/.configured: ${WRKDIST}/.extract + cd ${WRKBUILD}; rm -rf config.{cache,status}; \ + export ${OPENJDK_NATIVE_ENV}; ./configure \ + --enable-bootstrap \ + --enable-zero \ + --disable-openjdk-cross-compilation \ + --with-openjdk-src-dir=$(WRKDIST)/$(PKG_NAME)-$(PKG_VERSION) \ + --with-jdk-home=$(STAGING_JAVA_HOST_DIR)/usr/lib/jvm \ + --with-java=$(STAGING_JAVA_HOST_DIR)/usr/bin/java \ + --with-javac=$(STAGING_JAVA_HOST_DIR)/usr/bin/ecj \ + --with-gcj=$(STAGING_JAVA_HOST_DIR)/usr/bin/gcj \ + --with-ecj-jar=${STAGING_JAVA_HOST_DIR}/usr/share/ecj.jar \ + --with-xalan2-jar=${WRKDIST}/${XALAN_NAME}_${XALAN_VERSION}/xalan.jar \ + --with-xalan2-serializer-jar=${WRKDIST}/${XALAN_NAME}_${XALAN_VERSION}/serializer.jar \ + --with-xerces2-jar=${WRKDIST}/${XALAN_NAME}_${XALAN_VERSION}/xercesImpl.jar \ + --without-rhino \ + --disable-docs + touch $@ + +$(WRKBUILD)/.compiled: ${WRKDIST}/.configured + export ${OPENJDK_NATIVE_ENV}; $(MAKE) -C $(WRKBUILD) + touch $@ + +${STAGING_JAVA_HOST_DIR}/bootstrap-jdk/bin/java: $(WRKBUILD)/.compiled + $(CP) $(WRKSRC)/openjdk.build/j2sdk-image $(STAGING_JAVA_HOST_DIR)/bootstrap-jdk + touch $@ + +include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/jtools/openjdk/do-extract b/jtools/openjdk/do-extract new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/jtools/openjdk/do-extract diff --git a/jtools/openjdk/patches/openjdk.patch b/jtools/openjdk/patches/openjdk.patch new file mode 100644 index 000000000..1ef7e195f --- /dev/null +++ b/jtools/openjdk/patches/openjdk.patch @@ -0,0 +1,54 @@ +diff -Nur openjdk-6.orig/Makefile openjdk-6/Makefile +--- openjdk-6.orig/Makefile 2011-02-28 17:02:07.000000000 +0100 ++++ openjdk-6/Makefile 2011-04-06 19:47:19.261818496 +0200 +@@ -25,9 +25,7 @@ + + BUILD_PARENT_DIRECTORY=. + +-ifndef TOPDIR +- TOPDIR:=. +-endif ++TOPDIR:=. + + ifndef JDK_TOPDIR + JDK_TOPDIR=$(TOPDIR)/jdk +diff -Nur icedtea6-1.10.orig/Makefile.in icedtea6-1.10/Makefile.in +--- icedtea6-1.10.orig/Makefile.in 2011-03-02 20:48:45.161291458 +0100 ++++ icedtea6-1.10/Makefile.in 2011-04-06 20:10:40.581819545 +0200 +@@ -1329,7 +1329,7 @@ + @OPENJDK_SRC_DIR_FOUND_TRUE@ cp -pPR $(OPENJDK_SRC_DIR_LINK) $(OPENJDK_SRC_DIR) openjdk ; \ + @OPENJDK_SRC_DIR_FOUND_TRUE@ fi + @OPENJDK_SRC_DIR_FOUND_FALSE@@USE_HG_TRUE@ if ! test -d openjdk ; then \ +-@OPENJDK_SRC_DIR_FOUND_FALSE@@USE_HG_TRUE@ cp -pPRl openjdk.hg openjdk ; \ ++@OPENJDK_SRC_DIR_FOUND_FALSE@@USE_HG_TRUE@ cp -pPR openjdk.hg openjdk ; \ + @OPENJDK_SRC_DIR_FOUND_FALSE@@USE_HG_TRUE@ fi + @OPENJDK_SRC_DIR_FOUND_FALSE@@USE_HG_FALSE@ set -e ; \ + @OPENJDK_SRC_DIR_FOUND_FALSE@@USE_HG_FALSE@ if ! test -d openjdk ; \ +@@ -1576,7 +1576,7 @@ + # FIXME (missing): Rename to clone-ecj. + stamps/extract-ecj.stamp: $(OPENJDK_TREE) + if ! test -d openjdk-ecj ; then \ +- cp -pPRl openjdk openjdk-ecj ; \ ++ cp -pPR openjdk openjdk-ecj ; \ + fi + mkdir -p stamps + touch stamps/extract-ecj.stamp +@@ -1643,10 +1643,14 @@ + + stamps/native-ecj.stamp: + mkdir -p stamps ; \ +- if test "x$(GCJ)" != "xno"; then \ +- $(GCJ) $(IT_CFLAGS) -Wl,-Bsymbolic -findirect-dispatch -o native-ecj \ +- --main=org.eclipse.jdt.internal.compiler.batch.Main ${ECJ_JAR} ; \ +- fi ; \ ++ if test -n "${ADK_ECJ}" && test -x "${ADK_ECJ}"; then \ ++ ln -s "${ADK_ECJ}" native-ecj; \ ++ else \ ++ if test "x$(GCJ)" != "xno"; then \ ++ $(GCJ) $(IT_CFLAGS) -Wl,-Bsymbolic -findirect-dispatch -o native-ecj \ ++ --main=org.eclipse.jdt.internal.compiler.batch.Main ${ECJ_JAR} ; \ ++ fi ; \ ++ fi; \ + touch stamps/native-ecj.stamp + + clean-native-ecj: diff --git a/package/MesaLib/Makefile b/package/MesaLib/Makefile index 479ad854d..caf9fe384 100644 --- a/package/MesaLib/Makefile +++ b/package/MesaLib/Makefile @@ -11,7 +11,7 @@ PKG_DESCR:= MESA library PKG_SECTION:= libs PKG_DEPENDS:= libxdamage libxfixes libdrm libxxf86vm PKG_BUILDDEP:= libXdamage libXfixes libXxf86vm libdrm -PKG_BUILDDEP+= dri2proto glproto expat +PKG_BUILDDEP+= dri2proto glproto expat libXext PKG_URL:= http://www.mesa3d.org/ PKG_SITES:= ftp://ftp.freedesktop.org/pub/mesa/7.8.2/ PKG_NEED_CXX:= 1 diff --git a/package/cairo/Makefile b/package/cairo/Makefile index 13ed514d4..1218e6493 100644 --- a/package/cairo/Makefile +++ b/package/cairo/Makefile @@ -10,7 +10,7 @@ PKG_MD5SUM:= f101a9e88b783337b20b2e26dfd26d5f PKG_DESCR:= cairo graphics library PKG_SECTION:= libs PKG_DEPENDS:= fontconfig libfreetype libpng libx11 pixman -PKG_BUILDDEP:= libpng pixman freetype fontconfig libX11 +PKG_BUILDDEP:= libpng pixman freetype fontconfig libX11 libXrender PKG_URL:= http://cairographics.org/ PKG_SITES:= http://cairographics.org/releases/ diff --git a/package/cairo/patches/patch-src_cairo-features_h b/package/cairo/patches/patch-src_cairo-features_h deleted file mode 100644 index 6466deec7..000000000 --- a/package/cairo/patches/patch-src_cairo-features_h +++ /dev/null @@ -1,15 +0,0 @@ ---- cairo-1.8.10.orig/src/cairo-features.h 2010-02-19 22:34:38.000000000 +0100 -+++ cairo-1.8.10/src/cairo-features.h 2011-01-14 20:12:28.000000000 +0100 -@@ -10,11 +10,11 @@ - #define CAIRO_HAS_SVG_SURFACE 1 - #define CAIRO_HAS_USER_FONT 1 - #define CAIRO_HAS_XLIB_SURFACE 1 --#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1 - - /*#undef CAIRO_HAS_QUARTZ_FONT */ - /*#undef CAIRO_HAS_QUARTZ_SURFACE */ - /*#undef CAIRO_HAS_WIN32_FONT */ - /*#undef CAIRO_HAS_WIN32_SURFACE */ -+/*#undef CAIRO_HAS_XLIB_XRENDER_SURFACE */ - - #endif diff --git a/package/firefox/Makefile b/package/firefox/Makefile index 338821492..12c513504 100644 --- a/package/firefox/Makefile +++ b/package/firefox/Makefile @@ -4,9 +4,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:= firefox -PKG_VERSION:= 4.0 +PKG_VERSION:= 3.6.15 PKG_RELEASE:= 1 -PKG_MD5SUM:= 3468a2c463b4fc2788ba621e4b511c30 +PKG_MD5SUM:= fcf8042948d91f1f3d9c33599b79cf35 PKG_DESCR:= graphical webbrowser PKG_SECTION:= x11/apps PKG_DEPENDS:= libpthread alsa-lib dbus-glib glib libgtk libpng libtiff libnotify @@ -23,7 +23,7 @@ PKG_ARCH_DEPENDS:= x86 x86_64 mips mipsel mips64 mips64el native PKG_HOST_DEPENDS:= !netbsd !freebsd !openbsd !cygwin DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.source.tar.bz2 -WRKDIST= ${WRKDIR}/mozilla-2.0 +WRKDIST= ${WRKDIR}/mozilla-1.9.2 include $(TOPDIR)/mk/package.mk diff --git a/package/firefox/patches/patch-configure b/package/firefox/patches/patch-configure index 733e4aa4c..6ab49e7f0 100644 --- a/package/firefox/patches/patch-configure +++ b/package/firefox/patches/patch-configure @@ -1,45 +1,52 @@ ---- mozilla-2.0.orig/configure 2011-03-19 00:48:56.000000000 +0100 -+++ mozilla-2.0/configure 2011-04-07 18:48:49.000000000 +0200 -@@ -1588,7 +1588,7 @@ test -n "$HOST_CXX" || HOST_CXX="""" - HOST_CXXFLAGS="$CXXFLAGS" - fi - if test -z "$HOST_LDFLAGS"; then -- HOST_LDFLAGS="$LDFLAGS" -+ HOST_LDFLAGS="$LDFLAGS_FOR_BUILD" - fi - if test -z "$HOST_AR_FLAGS"; then - HOST_AR_FLAGS="$AR_FLAGS" -@@ -22573,15 +22573,6 @@ if test "${with_libIDL+set}" = set; then +--- mozilla-1.9.2.orig/configure 2010-12-03 16:57:11.000000000 +0100 ++++ mozilla-1.9.2/configure 2010-12-29 21:52:34.000000000 +0100 +@@ -3970,7 +3970,7 @@ else + echo "$ac_t""yes" 1>&6 fi +- for ac_prog in $PYTHON python2.5 python2.4 python ++ for ac_prog in $PYTHON python2.6 python2.5 python2.4 python + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +@@ -5625,7 +5625,6 @@ DIRENT_INO=d_ino + CYGWIN_WRAPPER= + WIN_TOP_SRC= + MOZ_USER_DIR=".mozilla" +-HOST_AR='$(AR)' + HOST_AR_FLAGS='$(AR_FLAGS)' + + MOZ_JPEG_CFLAGS= +@@ -17895,7 +17894,7 @@ echo "configure:17889: checking for SQLI + else + + if test "$cross_compiling" = yes; then +- ac_cv_sqlite_secure_delete=no ++ ac_cv_sqlite_secure_delete=yes + + else + cat > conftest.$ac_ext <<EOF +@@ -21460,18 +21459,11 @@ fi + fi + fi --if test -z "$CROSS_COMPILE"; then -- if test -z "$HOST_LIBIDL_CONFIG"; then +-if test -n "$CROSS_COMPILE"; then +- if test -z "$HOST_LIBIDL_CONFIG"; then - HOST_LIBIDL_CONFIG="$LIBIDL_CONFIG" - fi -- if test -z "$HOST_LIBIDL_PREFIX"; then -- HOST_LIBIDL_PREFIX="$LIBIDL_PREFIX" +- if test -n "$HOST_LIBIDL_CONFIG" && test "$HOST_LIBIDL_CONFIG" != "no"; then +- HOST_LIBIDL_CFLAGS=`${HOST_LIBIDL_CONFIG} --cflags` +- HOST_LIBIDL_LIBS=`${HOST_LIBIDL_CONFIG} --libs` +- else +- HOST_LIBIDL_CFLAGS="$LIBIDL_CFLAGS" +- HOST_LIBIDL_LIBS="$LIBIDL_LIBS" - fi -fi -- - if test "$SKIP_IDL_CHECK" = "no" - then - _LIBIDL_FOUND= -@@ -22788,6 +22779,7 @@ fi - fi - fi - -+ - # Check whether --with-glib-prefix or --without-glib-prefix was given. - if test "${with_glib_prefix+set}" = set; then - withval="$with_glib_prefix" -@@ -23542,6 +23534,9 @@ else - LIBIDL_LIBS="$HOST_LIBIDL_LIBS" - fi - +HOST_LIBIDL_CFLAGS=`env PKG_CONFIG_LIBDIR=${PKG_HOSTLIB_DIR} ${BUILD_LIBIDL_CONFIG} --cflags` +HOST_LIBIDL_LIBS=`env PKG_CONFIG_LIBDIR=${PKG_HOSTLIB_DIR} ${BUILD_LIBIDL_CONFIG} --libs` + ++echo "host libidl cflags: ${HOST_LIBIDL_CFLAGS}" ++echo "host libidl libs: ${HOST_LIBIDL_LIBS}" + if test -z "$SKIP_PATH_CHECKS"; then - if test -z "${GLIB_CFLAGS}" -o -z "${GLIB_LIBS}" ; then - if test "$MOZ_ENABLE_GTK2" -o "$USE_ELF_DYNSTR_GC" ; then + if test -z "${GLIB_CFLAGS}" || test -z "${GLIB_LIBS}" ; then diff --git a/package/firefox/patches/patch-content_base_public_nsContentUtils_h b/package/firefox/patches/patch-content_base_public_nsContentUtils_h deleted file mode 100644 index 0d5d389a4..000000000 --- a/package/firefox/patches/patch-content_base_public_nsContentUtils_h +++ /dev/null @@ -1,11 +0,0 @@ ---- mozilla-2.0.orig/content/base/public/nsContentUtils.h 2011-03-19 00:33:33.000000000 +0100 -+++ mozilla-2.0/content/base/public/nsContentUtils.h 2011-03-27 21:49:48.303361341 +0200 -@@ -1942,7 +1942,7 @@ inline NS_HIDDEN_(PRBool) NS_FloatIsFini - #ifdef WIN32 - return _finite(f); - #else -- return finite(f); -+ return isfinite(f); - #endif - } - diff --git a/package/firefox/patches/patch-content_base_src_nsContentSink_cpp b/package/firefox/patches/patch-content_base_src_nsContentSink_cpp new file mode 100644 index 000000000..a97306351 --- /dev/null +++ b/package/firefox/patches/patch-content_base_src_nsContentSink_cpp @@ -0,0 +1,10 @@ +--- mozilla-1.9.2.orig/content/base/src/nsContentSink.cpp 2010-10-27 05:01:11.000000000 +0200 ++++ mozilla-1.9.2/content/base/src/nsContentSink.cpp 2010-11-11 22:40:48.404995720 +0100 +@@ -1973,7 +1973,6 @@ nsIAtom** const kDefaultAllowedAttribute + &nsGkAtoms::nowrap, + &nsGkAtoms::open, + &nsGkAtoms::optimum, +- &nsGkAtoms::pattern, + &nsGkAtoms::placeholder, + &nsGkAtoms::pointSize, + &nsGkAtoms::prompt, diff --git a/package/firefox/patches/patch-content_canvas_src_nsCanvasRenderingContext2D_cpp b/package/firefox/patches/patch-content_canvas_src_nsCanvasRenderingContext2D_cpp deleted file mode 100644 index bd9eacb42..000000000 --- a/package/firefox/patches/patch-content_canvas_src_nsCanvasRenderingContext2D_cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- mozilla-2.0.orig/content/canvas/src/nsCanvasRenderingContext2D.cpp 2011-03-19 00:33:34.000000000 +0100 -+++ mozilla-2.0/content/canvas/src/nsCanvasRenderingContext2D.cpp 2011-03-27 22:36:34.953370738 +0200 -@@ -159,7 +159,7 @@ DoubleIsFinite(double d) - // NOTE: '!!' casts an int to bool without spamming MSVC warning C4800. - return !!_finite(d); - #else -- return finite(d); -+ return isfinite(d); - #endif - } - diff --git a/package/firefox/patches/patch-content_media_nsAudioStream_cpp b/package/firefox/patches/patch-content_media_nsAudioStream_cpp new file mode 100644 index 000000000..1452b9b6b --- /dev/null +++ b/package/firefox/patches/patch-content_media_nsAudioStream_cpp @@ -0,0 +1,11 @@ +--- mozilla-1.9.2.orig/content/media/nsAudioStream.cpp 2010-04-02 18:02:19.000000000 +0200 ++++ mozilla-1.9.2/content/media/nsAudioStream.cpp 2010-06-11 21:28:33.522214080 +0200 +@@ -246,7 +246,7 @@ float nsAudioStream::GetPosition() + #if defined(XP_WIN) + positionType = SA_POSITION_WRITE_HARDWARE; + #endif +- PRInt64 position = 0; ++ int64_t position = 0; + if (sa_stream_get_position(static_cast<sa_stream_t*>(mAudioHandle), + positionType, &position) == SA_SUCCESS) { + return (position / float(mRate) / mChannels / sizeof(short)); diff --git a/package/firefox/patches/patch-gfx_qcms_iccread_c b/package/firefox/patches/patch-gfx_qcms_iccread_c new file mode 100644 index 000000000..ea9ab6234 --- /dev/null +++ b/package/firefox/patches/patch-gfx_qcms_iccread_c @@ -0,0 +1,18 @@ +--- mozilla-1.9.2.orig/gfx/qcms/iccread.c 2010-04-02 18:02:27.000000000 +0200 ++++ mozilla-1.9.2/gfx/qcms/iccread.c 2010-04-30 14:00:52.430967966 +0200 +@@ -23,6 +23,7 @@ + #include <math.h> + #include <assert.h> + #include <stdlib.h> ++#include <stdio.h> + #include "qcmsint.h" + + //XXX: use a better typename +@@ -771,7 +772,6 @@ void qcms_profile_release(qcms_profile * + qcms_profile_fini(profile); + } + +-#include <stdio.h> + qcms_profile* qcms_profile_from_file(FILE *file) + { + uint32_t length, remaining_length; diff --git a/package/firefox/patches/patch-gfx_qcms_qcmstypes_h b/package/firefox/patches/patch-gfx_qcms_qcmstypes_h new file mode 100644 index 000000000..80f68661a --- /dev/null +++ b/package/firefox/patches/patch-gfx_qcms_qcmstypes_h @@ -0,0 +1,26 @@ +--- mozilla-1.9.2.orig/gfx/qcms/qcmstypes.h 2010-04-02 18:02:27.000000000 +0200 ++++ mozilla-1.9.2/gfx/qcms/qcmstypes.h 2010-04-30 17:58:33.490975825 +0200 +@@ -11,22 +11,12 @@ + /* int_types.h gets included somehow, so avoid redefining the types differently */ + #include <sys/int_types.h> + #else +-typedef PRInt8 int8_t; +-typedef PRUint8 uint8_t; +-typedef PRInt16 int16_t; +-typedef PRUint16 uint16_t; +-typedef PRInt32 int32_t; +-typedef PRUint32 uint32_t; +-typedef PRInt64 int64_t; +-typedef PRUint64 uint64_t; +- ++#include <stdint.h> + #ifdef __OS2__ + /* OS/2's stdlib typdefs uintptr_t. So we'll just include that so we don't collide */ + #include <stdlib.h> + #elif defined(__FreeBSD__) + /* FreeBSD typedefs uintptr_t in /usr/include/sys/types.h */ +-#else +-typedef PRUptrdiff uintptr_t; + #endif + #endif + diff --git a/package/firefox/patches/patch-ipc_chromium_src_base_debug_util_posix_cc b/package/firefox/patches/patch-ipc_chromium_src_base_debug_util_posix_cc index cc75305d9..833e94185 100644 --- a/package/firefox/patches/patch-ipc_chromium_src_base_debug_util_posix_cc +++ b/package/firefox/patches/patch-ipc_chromium_src_base_debug_util_posix_cc @@ -1,24 +1,29 @@ ---- mozilla-2.0.orig/ipc/chromium/src/base/debug_util_posix.cc 2011-03-19 00:33:46.000000000 +0100 -+++ mozilla-2.0/ipc/chromium/src/base/debug_util_posix.cc 2011-04-07 20:17:31.000000000 +0200 -@@ -119,11 +119,7 @@ StackTrace::StackTrace() { +--- mozilla-1.9.2.orig/ipc/chromium/src/base/debug_util_posix.cc 2010-10-27 05:01:17.000000000 +0200 ++++ mozilla-1.9.2/ipc/chromium/src/base/debug_util_posix.cc 2010-11-12 11:53:10.614327269 +0100 +@@ -114,6 +114,9 @@ void DebugUtil::BreakDebugger() { + } + + StackTrace::StackTrace() { ++#ifdef CHROMIUM_MOZILLA_BUILD ++ return; ++#else const int kMaxCallers = 256; void* callers[kMaxCallers]; --#ifndef ANDROID -- int count = backtrace(callers, kMaxCallers); --#else - int count = 0; --#endif - - // Though the backtrace API man page does not list any possible negative - // return values, we still still exclude them because they would break the -@@ -138,9 +134,6 @@ StackTrace::StackTrace() { +@@ -128,11 +131,16 @@ StackTrace::StackTrace() { + } else { + trace_.resize(0); + } ++#endif + } void StackTrace::PrintBacktrace() { ++#ifdef CHROMIUM_MOZILLA_BUILD ++ return; ++#else fflush(stderr); --#ifndef ANDROID -- backtrace_symbols_fd(&trace_[0], trace_.size(), STDERR_FILENO); --#endif + backtrace_symbols_fd(&trace_[0], trace_.size(), STDERR_FILENO); ++#endif } void StackTrace::OutputToStream(std::ostream* os) { diff --git a/package/firefox/patches/patch-js_src_ctypes_CTypes_cpp b/package/firefox/patches/patch-js_src_ctypes_CTypes_cpp deleted file mode 100644 index 0df200fbf..000000000 --- a/package/firefox/patches/patch-js_src_ctypes_CTypes_cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- mozilla-2.0.orig/js/src/ctypes/CTypes.cpp 2011-03-19 00:33:47.000000000 +0100 -+++ mozilla-2.0/js/src/ctypes/CTypes.cpp 2011-03-27 20:35:10.553370360 +0200 -@@ -464,7 +464,7 @@ static inline bool FloatIsFinite(jsdoubl - #ifdef WIN32 - return _finite(f) != 0; - #else -- return finite(f); -+ return isfinite(f); - #endif - } - diff --git a/package/firefox/patches/patch-js_src_jsnum_h b/package/firefox/patches/patch-js_src_jsnum_h index 54c7064cf..af999878c 100644 --- a/package/firefox/patches/patch-js_src_jsnum_h +++ b/package/firefox/patches/patch-js_src_jsnum_h @@ -1,6 +1,6 @@ ---- mozilla-2.0.orig/js/src/jsnum.h 2011-03-19 00:33:50.000000000 +0100 -+++ mozilla-2.0/js/src/jsnum.h 2011-03-27 20:18:21.253370504 +0200 -@@ -101,7 +101,7 @@ JSDOUBLE_IS_FINITE(jsdouble d) +--- mozilla-1.9.2.orig/js/src/jsnum.h 2010-04-02 18:02:28.000000000 +0200 ++++ mozilla-1.9.2/js/src/jsnum.h 2010-04-11 14:04:14.000000000 +0200 +@@ -98,7 +98,7 @@ JSDOUBLE_IS_FINITE(jsdouble d) #ifdef WIN32 return _finite(d); #else diff --git a/package/firefox/patches/patch-modules_libpr0n_decoders_nsPNGDecoder_cpp b/package/firefox/patches/patch-modules_libpr0n_decoders_nsPNGDecoder_cpp deleted file mode 100644 index 9534c92bd..000000000 --- a/package/firefox/patches/patch-modules_libpr0n_decoders_nsPNGDecoder_cpp +++ /dev/null @@ -1,12 +0,0 @@ ---- mozilla-2.0.orig/modules/libpr0n/decoders/nsPNGDecoder.cpp 2011-03-19 00:34:02.000000000 +0100 -+++ mozilla-2.0/modules/libpr0n/decoders/nsPNGDecoder.cpp 2011-03-27 22:30:41.783370593 +0200 -@@ -386,7 +386,8 @@ PNGGetColorProfile(png_structp png_ptr, - // First try to see if iCCP chunk is present - if (png_get_valid(png_ptr, info_ptr, PNG_INFO_iCCP)) { - png_uint_32 profileLen; -- char *profileData, *profileName; -+ png_byte *profileData; -+ char *profileName; - int compression; - - png_get_iCCP(png_ptr, info_ptr, &profileName, &compression, diff --git a/package/firefox/patches/patch-security_coreconf_Linux_mk b/package/firefox/patches/patch-security_coreconf_Linux_mk index 32aaf4633..26a3dc8f3 100644 --- a/package/firefox/patches/patch-security_coreconf_Linux_mk +++ b/package/firefox/patches/patch-security_coreconf_Linux_mk @@ -1,5 +1,5 @@ ---- mozilla-2.0.orig/security/coreconf/Linux.mk 2011-03-19 00:34:04.000000000 +0100 -+++ mozilla-2.0/security/coreconf/Linux.mk 2011-03-28 13:44:58.221818344 +0200 +--- mozilla-1.9.2.orig/security/coreconf/Linux.mk 2010-12-03 16:48:49.000000000 +0100 ++++ mozilla-1.9.2/security/coreconf/Linux.mk 2011-01-20 20:18:26.904905227 +0100 @@ -46,9 +46,9 @@ ifeq ($(USE_PTHREADS),1) IMPL_STRATEGY = _PTH endif diff --git a/package/firefox/patches/patch-security_coreconf_command_mk b/package/firefox/patches/patch-security_coreconf_command_mk index 3b4ddc1be..fcf73b8a8 100644 --- a/package/firefox/patches/patch-security_coreconf_command_mk +++ b/package/firefox/patches/patch-security_coreconf_command_mk @@ -1,5 +1,5 @@ ---- mozilla-2.0.orig/security/coreconf/command.mk 2011-03-19 00:34:04.000000000 +0100 -+++ mozilla-2.0/security/coreconf/command.mk 2011-03-28 13:45:21.461818772 +0200 +--- mozilla-1.9.2.orig/security/coreconf/command.mk 2010-12-03 16:48:49.000000000 +0100 ++++ mozilla-1.9.2/security/coreconf/command.mk 2011-01-20 20:18:56.214904993 +0100 @@ -48,7 +48,7 @@ LINK_EXE = $(LINK) $(OS_LFLAGS) $(L CFLAGS = $(OPTIMIZER) $(OS_CFLAGS) $(XP_DEFINE) $(DEFINES) $(INCLUDES) \ $(XCFLAGS) diff --git a/package/firefox/patches/patch-security_nss_lib_freebl_stubs_c b/package/firefox/patches/patch-security_nss_lib_freebl_stubs_c new file mode 100644 index 000000000..233823c91 --- /dev/null +++ b/package/firefox/patches/patch-security_nss_lib_freebl_stubs_c @@ -0,0 +1,11 @@ +--- mozilla-1.9.2.orig/security/nss/lib/freebl/stubs.c 2010-04-02 18:03:06.000000000 +0200 ++++ mozilla-1.9.2/security/nss/lib/freebl/stubs.c 2010-04-11 15:37:04.000000000 +0200 +@@ -530,7 +530,7 @@ freebl_InitNSSUtil(void *lib) + * fetch the library if it's loaded. For NSS it should already be loaded + */ + #define freebl_getLibrary(libName) \ +- dlopen (libName, RTLD_LAZY|RTLD_NOLOAD) ++ dlopen (libName, RTLD_LAZY) + + #define freebl_releaseLibrary(lib) \ + if (lib) dlclose(lib) diff --git a/package/firefox/patches/patch-xpcom_reflect_xptcall_src_md_unix_xptc_platforms_unixish_x86_h b/package/firefox/patches/patch-xpcom_reflect_xptcall_src_md_unix_xptc_platforms_unixish_x86_h deleted file mode 100644 index 0b2443c1e..000000000 --- a/package/firefox/patches/patch-xpcom_reflect_xptcall_src_md_unix_xptc_platforms_unixish_x86_h +++ /dev/null @@ -1,20 +0,0 @@ ---- mozilla-2.0.orig/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h 2011-03-19 00:34:13.000000000 +0100 -+++ mozilla-2.0/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h 2011-04-07 19:02:44.000000000 +0200 -@@ -67,6 +67,9 @@ - * - */ - -+#define CFRONT_STYLE_THIS_ADJUST -+ -+#if 0 - #if defined(LINUX) || (defined(__GLIBC__) && (defined(__FreeBSD_kernel__) || defined(__GNU__))) - - #if (__GNUC__ == 2) && (__GNUC_MINOR__ <= 7) -@@ -159,6 +162,7 @@ - #else - #error "need a platform define if using unixish x86 code" - #endif -+#endif - - /***************************************************************************/ - diff --git a/package/firefox/patches/patch-xpcom_threads_nsThread_cpp b/package/firefox/patches/patch-xpcom_threads_nsThread_cpp deleted file mode 100644 index ca4be566b..000000000 --- a/package/firefox/patches/patch-xpcom_threads_nsThread_cpp +++ /dev/null @@ -1,33 +0,0 @@ ---- mozilla-2.0.orig/xpcom/threads/nsThread.cpp 2011-03-19 00:34:14.000000000 +0100 -+++ mozilla-2.0/xpcom/threads/nsThread.cpp 2011-03-27 21:47:15.633370362 +0200 -@@ -46,10 +46,13 @@ - #include "prlog.h" - #include "nsThreadUtilsInternal.h" - -+#include <features.h> -+ - #define HAVE_UALARM _BSD_SOURCE || (_XOPEN_SOURCE >= 500 || \ - _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) && \ - !(_POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700) - -+#if !defined(__UCLIBC__) - #if defined(XP_UNIX) && !defined(ANDROID) && !defined(DEBUG) && HAVE_UALARM \ - && defined(_GNU_SOURCE) - # define MOZ_CANARY -@@ -59,6 +62,7 @@ - # include <fcntl.h> - # include "nsXULAppAPI.h" - #endif -+#endif - - #include "mozilla/FunctionTimer.h" - #if defined(NS_FUNCTION_TIMER) && defined(_MSC_VER) -@@ -562,7 +566,7 @@ void canary_alarm_handler (int signum) - const char msg[29] = "event took too long to run:\n"; - // use write to be safe in the signal handler - write(Canary::sOutputFD, msg, sizeof(msg)); -- backtrace_symbols_fd(array, backtrace(array, 30), Canary::sOutputFD); -+ //backtrace_symbols_fd(array, backtrace(array, 30), Canary::sOutputFD); - } - - #endif diff --git a/package/gcc/Makefile b/package/gcc/Makefile index 3f50b9e91..6158d094f 100644 --- a/package/gcc/Makefile +++ b/package/gcc/Makefile @@ -41,7 +41,7 @@ CONFIGURE_ARGS+= --enable-languages=c,c++ \ --enable-cxx-flags="${TARGET_LDFLAGS}" # disable honour cflags stuff -XAKE_FLAGS+= GCC_HONOUR_COPTS:=s +XAKE_FLAGS+= GCC_HONOUR_COPTS=s post-install: ${INSTALL_DIR} ${IDIR_GCC}/usr/lib/gcc ${IDIR_GCC}/usr/bin diff --git a/package/glibc/Makefile b/package/glibc/Makefile index d428a58ec..be5d21e46 100644 --- a/package/glibc/Makefile +++ b/package/glibc/Makefile @@ -46,7 +46,7 @@ ifeq ($(ADK_TOOLCHAIN_GCC_USE_SSP),y) $(CP) $(STAGING_TARGET_DIR)/lib/libssp.so* $(IDIR_GLIBC)/lib endif $(CP) $(STAGING_TARGET_DIR)/lib/ld*.so* $(IDIR_GLIBC)/lib - -for file in libc libcrypt libdl libm libresolv librt libutil libnss_compat libnss_dns libnss_files; do \ + for file in libc libcrypt libdl libm libnsl libresolv librt libutil libnss_compat libnss_dns libnss_files; do \ $(CP) $(STAGING_TARGET_DIR)/lib/$$file.so* $(IDIR_GLIBC)/lib; \ $(CP) $(STAGING_TARGET_DIR)/lib/$$file-$(PKG_VERSION).so $(IDIR_GLIBC)/lib; \ done diff --git a/package/gtk+/Makefile b/package/gtk+/Makefile index e1c0eb5de..3b88cf9e5 100644 --- a/package/gtk+/Makefile +++ b/package/gtk+/Makefile @@ -12,7 +12,7 @@ PKG_DESCR:= GTK+ library PKG_SECTION:= libs PKG_DEPENDS:= glib PKG_BUILDDEP:= cairo atk pango libXext renderproto libXrender -PKG_BUILDDEP+= gdk-pixbuf libXcomposite +PKG_BUILDDEP+= gdk-pixbuf libXcomposite libXdamage PKG_URL:= http://www.gtk.org/ PKG_SITES:= http://ftp.gnome.org/pub/gnome/sources/gtk+/$(PKG_EXTRAVER)/ PKG_NEED_CXX:= 1 diff --git a/package/libXext/Makefile b/package/libXext/Makefile index 6caddfc93..d99bb7247 100644 --- a/package/libXext/Makefile +++ b/package/libXext/Makefile @@ -9,7 +9,7 @@ PKG_RELEASE:= 1 PKG_MD5SUM:= 9beee7f603907840de9d9e73172e74d0 PKG_DESCR:= X client interface to extensions of the X protocol PKG_SECTION:= x11/libs -PKG_BUILDDEP:= libX11 +PKG_BUILDDEP:= libX11 xextproto PKG_SITES:= ${MASTER_SITE_XORG} PKG_SUBPKGS:= LIBXEXT LIBXEXT_DEV diff --git a/package/libpng/Makefile b/package/libpng/Makefile index 2deced6df..f1d420899 100644 --- a/package/libpng/Makefile +++ b/package/libpng/Makefile @@ -4,9 +4,9 @@ include ${TOPDIR}/rules.mk PKG_NAME:= libpng -PKG_VERSION:= 1.5.1 +PKG_VERSION:= 1.2.44 PKG_RELEASE:= 1 -PKG_MD5SUM:= 220035f111ea045a51e290906025e8b5 +PKG_MD5SUM:= 89b62f8daaeeab1342e307d6d1411ff1 PKG_DESCR:= A library for reading/writing PNG images PKG_SECTION:= libs PKG_DEPENDS:= zlib @@ -27,7 +27,7 @@ include ${TOPDIR}/mk/package.mk $(eval $(call PKG_template,LIBPNG,libpng,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS})) $(eval $(call PKG_template,LIBPNG_DEV,libpng-dev,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LIBPNG_DEV},${PKGSC_LIBPNG_DEV},${PKG_OPTS})) -#TARGET_CFLAGS:= $(filter-out -flto,$(TARGET_CFLAGS)) +TARGET_CFLAGS:= $(filter-out -flto,$(TARGET_CFLAGS)) libpng-install: ${INSTALL_DIR} ${IDIR_LIBPNG}/usr/lib diff --git a/package/libpng/patches/001-apng.patch b/package/libpng/patches/001-apng.patch index 3b68eea9f..3af4a0547 100644 --- a/package/libpng/patches/001-apng.patch +++ b/package/libpng/patches/001-apng.patch @@ -1,7 +1,51 @@ -diff -Nur libpng-1.5.1.orig/pngget.c libpng-1.5.1/pngget.c ---- libpng-1.5.1.orig/pngget.c 2011-02-03 05:58:17.000000000 +0100 -+++ libpng-1.5.1/pngget.c 2011-03-27 19:43:38.404620874 +0200 -@@ -937,6 +937,167 @@ +diff -Nur libpng-1.2.44.orig/png.c libpng-1.2.44/png.c +--- libpng-1.2.44.orig/png.c 2010-06-26 02:31:14.000000000 +0200 ++++ libpng-1.2.44/png.c 2010-07-08 21:21:33.745873377 +0200 +@@ -56,6 +56,11 @@ + PNG_tIME; + PNG_tRNS; + PNG_zTXt; ++#ifdef PNG_APNG_SUPPORTED ++PNG_acTL; ++PNG_fcTL; ++PNG_fdAT; ++#endif + + #ifdef PNG_READ_SUPPORTED + /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */ +diff -Nur libpng-1.2.44.orig/pngconf.h libpng-1.2.44/pngconf.h +--- libpng-1.2.44.orig/pngconf.h 2010-06-26 02:31:14.000000000 +0200 ++++ libpng-1.2.44/pngconf.h 2010-07-08 21:21:33.906029659 +0200 +@@ -951,6 +951,10 @@ + # define PNG_NO_READ_tEXt + # define PNG_NO_READ_zTXt + #endif ++#ifndef PNG_NO_READ_APNG ++# define PNG_READ_APNG_SUPPORTED ++# define PNG_APNG_SUPPORTED ++#endif + #ifndef PNG_NO_READ_bKGD + # define PNG_READ_bKGD_SUPPORTED + # define PNG_bKGD_SUPPORTED +@@ -1177,6 +1181,14 @@ + # define PNG_TEXT_SUPPORTED + # endif + #endif ++#ifndef PNG_NO_WRITE_APNG ++# ifndef PNG_WRITE_APNG_SUPPORTED ++# define PNG_WRITE_APNG_SUPPORTED ++# endif ++# ifndef PNG_APNG_SUPPORTED ++# define PNG_APNG_SUPPORTED ++# endif ++#endif + + #ifdef PNG_WRITE_tIME_SUPPORTED + # ifndef PNG_NO_CONVERT_tIME +diff -Nur libpng-1.2.44.orig/pngget.c libpng-1.2.44/pngget.c +--- libpng-1.2.44.orig/pngget.c 2010-06-26 02:31:14.000000000 +0200 ++++ libpng-1.2.44/pngget.c 2010-07-08 21:21:33.676118515 +0200 +@@ -842,6 +842,167 @@ } #endif @@ -11,7 +55,7 @@ diff -Nur libpng-1.5.1.orig/pngget.c libpng-1.5.1/pngget.c + png_uint_32 *num_frames, png_uint_32 *num_plays) +{ + png_debug1(1, "in %s retrieval function", "acTL"); -+ ++ + if (png_ptr != NULL && info_ptr != NULL && + (info_ptr->valid & PNG_INFO_acTL) && + num_frames != NULL && num_plays != NULL) @@ -20,7 +64,7 @@ diff -Nur libpng-1.5.1.orig/pngget.c libpng-1.5.1/pngget.c + *num_plays = info_ptr->num_plays; + return (1); + } -+ ++ + return (0); +} + @@ -28,7 +72,7 @@ diff -Nur libpng-1.5.1.orig/pngget.c libpng-1.5.1/pngget.c +png_get_num_frames(png_structp png_ptr, png_infop info_ptr) +{ + png_debug(1, "in png_get_num_frames()"); -+ ++ + if (png_ptr != NULL && info_ptr != NULL) + return (info_ptr->num_frames); + return (0); @@ -38,7 +82,7 @@ diff -Nur libpng-1.5.1.orig/pngget.c libpng-1.5.1/pngget.c +png_get_num_plays(png_structp png_ptr, png_infop info_ptr) +{ + png_debug(1, "in png_get_num_plays()"); -+ ++ + if (png_ptr != NULL && info_ptr != NULL) + return (info_ptr->num_plays); + return (0); @@ -52,7 +96,7 @@ diff -Nur libpng-1.5.1.orig/pngget.c libpng-1.5.1/pngget.c + png_byte *dispose_op, png_byte *blend_op) +{ + png_debug1(1, "in %s retrieval function", "fcTL"); -+ ++ + if (png_ptr != NULL && info_ptr != NULL && + (info_ptr->valid & PNG_INFO_fcTL) && + width != NULL && height != NULL && @@ -70,7 +114,7 @@ diff -Nur libpng-1.5.1.orig/pngget.c libpng-1.5.1/pngget.c + *blend_op = info_ptr->next_frame_blend_op; + return (1); + } -+ ++ + return (0); +} + @@ -78,7 +122,7 @@ diff -Nur libpng-1.5.1.orig/pngget.c libpng-1.5.1/pngget.c +png_get_next_frame_width(png_structp png_ptr, png_infop info_ptr) +{ + png_debug(1, "in png_get_next_frame_width()"); -+ ++ + if (png_ptr != NULL && info_ptr != NULL) + return (info_ptr->next_frame_width); + return (0); @@ -88,7 +132,7 @@ diff -Nur libpng-1.5.1.orig/pngget.c libpng-1.5.1/pngget.c +png_get_next_frame_height(png_structp png_ptr, png_infop info_ptr) +{ + png_debug(1, "in png_get_next_frame_height()"); -+ ++ + if (png_ptr != NULL && info_ptr != NULL) + return (info_ptr->next_frame_height); + return (0); @@ -98,7 +142,7 @@ diff -Nur libpng-1.5.1.orig/pngget.c libpng-1.5.1/pngget.c +png_get_next_frame_x_offset(png_structp png_ptr, png_infop info_ptr) +{ + png_debug(1, "in png_get_next_frame_x_offset()"); -+ ++ + if (png_ptr != NULL && info_ptr != NULL) + return (info_ptr->next_frame_x_offset); + return (0); @@ -108,7 +152,7 @@ diff -Nur libpng-1.5.1.orig/pngget.c libpng-1.5.1/pngget.c +png_get_next_frame_y_offset(png_structp png_ptr, png_infop info_ptr) +{ + png_debug(1, "in png_get_next_frame_y_offset()"); -+ ++ + if (png_ptr != NULL && info_ptr != NULL) + return (info_ptr->next_frame_y_offset); + return (0); @@ -118,7 +162,7 @@ diff -Nur libpng-1.5.1.orig/pngget.c libpng-1.5.1/pngget.c +png_get_next_frame_delay_num(png_structp png_ptr, png_infop info_ptr) +{ + png_debug(1, "in png_get_next_frame_delay_num()"); -+ ++ + if (png_ptr != NULL && info_ptr != NULL) + return (info_ptr->next_frame_delay_num); + return (0); @@ -128,7 +172,7 @@ diff -Nur libpng-1.5.1.orig/pngget.c libpng-1.5.1/pngget.c +png_get_next_frame_delay_den(png_structp png_ptr, png_infop info_ptr) +{ + png_debug(1, "in png_get_next_frame_delay_den()"); -+ ++ + if (png_ptr != NULL && info_ptr != NULL) + return (info_ptr->next_frame_delay_den); + return (0); @@ -138,7 +182,7 @@ diff -Nur libpng-1.5.1.orig/pngget.c libpng-1.5.1/pngget.c +png_get_next_frame_dispose_op(png_structp png_ptr, png_infop info_ptr) +{ + png_debug(1, "in png_get_next_frame_dispose_op()"); -+ ++ + if (png_ptr != NULL && info_ptr != NULL) + return (info_ptr->next_frame_dispose_op); + return (0); @@ -148,7 +192,7 @@ diff -Nur libpng-1.5.1.orig/pngget.c libpng-1.5.1/pngget.c +png_get_next_frame_blend_op(png_structp png_ptr, png_infop info_ptr) +{ + png_debug(1, "in png_get_next_frame_blend_op()"); -+ ++ + if (png_ptr != NULL && info_ptr != NULL) + return (info_ptr->next_frame_blend_op); + return (0); @@ -158,32 +202,41 @@ diff -Nur libpng-1.5.1.orig/pngget.c libpng-1.5.1/pngget.c +png_get_first_frame_is_hidden(png_structp png_ptr, png_infop info_ptr) +{ + png_debug(1, "in png_first_frame_is_hidden()"); -+ ++ + if (png_ptr != NULL) + return (png_byte)(png_ptr->apng_flags & PNG_FIRST_FRAME_HIDDEN); -+ ++ + return 0; +} +#endif /* PNG_APNG_SUPPORTED */ + #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED - int PNGAPI - png_get_unknown_chunks(png_const_structp png_ptr, png_const_infop info_ptr, -diff -Nur libpng-1.5.1.orig/png.h libpng-1.5.1/png.h ---- libpng-1.5.1.orig/png.h 2011-02-03 05:58:16.000000000 +0100 -+++ libpng-1.5.1/png.h 2011-03-27 19:43:38.414620995 +0200 -@@ -404,6 +404,10 @@ - # include "pnglibconf.h" + png_uint_32 PNGAPI + png_get_unknown_chunks(png_structp png_ptr, png_infop info_ptr, +diff -Nur libpng-1.2.44.orig/png.h libpng-1.2.44/png.h +--- libpng-1.2.44.orig/png.h 2010-06-26 02:31:14.000000000 +0200 ++++ libpng-1.2.44/png.h 2010-07-08 21:21:33.796029652 +0200 +@@ -1041,6 +1041,19 @@ + png_fixed_point int_y_blue PNG_DEPSTRUCT; #endif -+#define PNG_APNG_SUPPORTED -+#define PNG_READ_APNG_SUPPORTED -+#define PNG_WRITE_APNG_SUPPORTED -+ - #ifndef PNG_VERSION_INFO_ONLY - /* Standard header files (not needed for the version info) */ - # ifdef PNG_SETJMP_SUPPORTED -@@ -766,6 +770,10 @@ ++#ifdef PNG_APNG_SUPPORTED ++ png_uint_32 num_frames; /* including default image */ ++ png_uint_32 num_plays; ++ png_uint_32 next_frame_width; ++ png_uint_32 next_frame_height; ++ png_uint_32 next_frame_x_offset; ++ png_uint_32 next_frame_y_offset; ++ png_uint_16 next_frame_delay_num; ++ png_uint_16 next_frame_delay_den; ++ png_byte next_frame_dispose_op; ++ png_byte next_frame_blend_op; ++#endif ++ + } png_info; + + typedef png_info FAR * png_infop; +@@ -1142,6 +1155,10 @@ #define PNG_INFO_sPLT 0x2000 /* ESR, 1.0.6 */ #define PNG_INFO_sCAL 0x4000 /* ESR, 1.0.6 */ #define PNG_INFO_IDAT 0x8000L /* ESR, 1.0.6 */ @@ -194,149 +247,257 @@ diff -Nur libpng-1.5.1.orig/png.h libpng-1.5.1/png.h /* This is used for the transformation routines, as some of them * change these values for the row. It also should enable using -@@ -811,6 +819,10 @@ - (png_structp, png_infop), ); - typedef PNG_CALLBACK(void, *png_progressive_row_ptr, - (png_structp, png_bytep, png_uint_32, int), ); +@@ -1182,6 +1199,10 @@ + typedef void (PNGAPI *png_progressive_end_ptr) PNGARG((png_structp, png_infop)); + typedef void (PNGAPI *png_progressive_row_ptr) PNGARG((png_structp, png_bytep, + png_uint_32, int)); +#ifdef PNG_APNG_SUPPORTED -+typedef PNG_CALLBACK(void, *png_progressive_frame_ptr, (png_structp, -+ png_uint_32),); ++typedef void (PNGAPI *png_progressive_frame_ptr) PNGARG((png_structp, ++ png_uint_32)); +#endif #endif #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ -@@ -1242,6 +1254,18 @@ - PNG_EXPORT(60, void, png_write_image, - (png_structp png_ptr, png_bytepp image)); +@@ -1527,6 +1548,39 @@ + png_uint_32 user_height_max PNG_DEPSTRUCT; + #endif -+#ifdef PNG_WRITE_APNG_SUPPORTED -+PNG_EXPORT(1001, void, png_write_frame_head, (png_structp png_ptr, -+ png_infop info_ptr, png_bytepp row_pointers, -+ png_uint_32 width, png_uint_32 height, -+ png_uint_32 x_offset, png_uint_32 y_offset, -+ png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op, -+ png_byte blend_op)); ++#ifdef PNG_APNG_SUPPORTED ++ png_uint_32 apng_flags; ++ png_uint_32 next_seq_num; /* next fcTL/fdAT chunk sequence number */ ++ png_uint_32 first_frame_width; ++ png_uint_32 first_frame_height; + -+PNG_EXPORT(1002, void, png_write_frame_tail, (png_structp png_ptr, -+ png_infop info_ptr)); ++#ifdef PNG_READ_APNG_SUPPORTED ++ png_uint_32 num_frames_read; /* incremented after all image data of */ ++ /* a frame is read */ ++#ifdef PNG_PROGRESSIVE_READ_SUPPORTED ++ png_progressive_frame_ptr frame_info_fn; /* frame info read callback */ ++ png_progressive_frame_ptr frame_end_fn; /* frame data read callback */ ++#endif +#endif + - /* Write the end of the PNG file. */ - PNG_EXPORT(61, void, png_write_end, - (png_structp png_ptr, png_infop info_ptr)); -@@ -1496,6 +1520,11 @@ - PNG_EXPORT(90, void, png_set_progressive_read_fn, (png_structp png_ptr, - png_voidp progressive_ptr, png_progressive_info_ptr info_fn, - png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn)); ++#ifdef PNG_WRITE_APNG_SUPPORTED ++ png_uint_32 num_frames_to_write; ++ png_uint_32 num_frames_written; ++#endif ++ ++/* For png_struct.apng_flags: */ ++#define PNG_FIRST_FRAME_HIDDEN 0x0001 ++ ++/* dispose_op flags from inside fcTL */ ++#define PNG_DISPOSE_OP_NONE 0x00 ++#define PNG_DISPOSE_OP_BACKGROUND 0x01 ++#define PNG_DISPOSE_OP_PREVIOUS 0x02 ++ ++/* blend_op flags from inside fcTL */ ++#define PNG_BLEND_OP_SOURCE 0x00 ++#define PNG_BLEND_OP_OVER 0x01 ++#endif /* PNG_APNG_SUPPORTED */ ++ + /* New member added in libpng-1.0.25 and 1.2.17 */ + #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED + /* Storage for unknown chunk that the library doesn't recognize. */ +@@ -1861,6 +1915,18 @@ + extern PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr, + png_bytepp image)); + ++#ifdef PNG_WRITE_APNG_SUPPORTED ++extern PNG_EXPORT (void,png_write_frame_head) PNGARG((png_structp png_ptr, ++ png_infop png_info, png_bytepp row_pointers, ++ png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op, ++ png_byte blend_op)); ++ ++extern PNG_EXPORT (void,png_write_frame_tail) PNGARG((png_structp png_ptr, ++ png_infop png_info)); ++#endif ++ + /* Writes the end of the PNG file. */ + extern PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr, + png_infop info_ptr)); +@@ -2114,6 +2180,11 @@ + png_voidp progressive_ptr, + png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn, + png_progressive_end_ptr end_fn)); +#ifdef PNG_READ_APNG_SUPPORTED -+PNG_EXPORT(1003, void, png_set_progressive_frame_fn, (png_structp png_ptr, -+ png_progressive_frame_ptr frame_info_fn, -+ png_progressive_frame_ptr frame_end_fn)); ++extern PNG_EXPORT(void,png_set_progressive_frame_fn) PNGARG((png_structp png_ptr, ++ png_progressive_frame_ptr frame_info_fn, ++ png_progressive_frame_ptr frame_end_fn)); +#endif /* Returns the user pointer associated with the push read functions */ - PNG_EXPORT(91, png_voidp, png_get_progressive_ptr, (png_const_structp png_ptr)); -@@ -1970,6 +1999,62 @@ - int unit, png_const_charp swidth, png_const_charp sheight)); - #endif /* PNG_sCAL_SUPPORTED */ + extern PNG_EXPORT(png_voidp,png_get_progressive_ptr) +@@ -2554,6 +2625,59 @@ + #endif + #endif /* PNG_sCAL_SUPPORTED || PNG_WRITE_sCAL_SUPPORTED */ +#ifdef PNG_APNG_SUPPORTED -+PNG_EXPORT(1004, png_uint_32, png_get_acTL, (png_structp png_ptr, ++extern PNG_EXPORT(png_uint_32,png_get_acTL) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 *num_frames, png_uint_32 *num_plays)); -+PNG_EXPORT(1005, png_uint_32, png_set_acTL, (png_structp png_ptr, ++extern PNG_EXPORT(png_uint_32,png_set_acTL) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 num_frames, png_uint_32 num_plays)); -+PNG_EXPORT(1006, png_uint_32, png_get_num_frames, (png_structp png_ptr, -+ png_infop info_ptr)); -+PNG_EXPORT(1007, png_uint_32,png_get_num_plays, (png_structp png_ptr, ++extern PNG_EXPORT(png_uint_32,png_get_num_frames) PNGARG((png_structp png_ptr, + png_infop info_ptr)); ++extern PNG_EXPORT(png_uint_32,png_get_num_plays) ++ PNGARG((png_structp png_ptr, png_infop info_ptr)); + -+PNG_EXPORT(1008, png_uint_32, png_get_next_frame_fcTL, -+ (png_structp png_ptr, png_infop info_ptr, png_uint_32 *width, -+ png_uint_32 *height, png_uint_32 *x_offset, png_uint_32 *y_offset, ++extern PNG_EXPORT(png_uint_32,png_get_next_frame_fcTL) ++ PNGARG((png_structp png_ptr, png_infop info_ptr, png_uint_32 *width, ++ png_uint_32 *height, png_uint_32 *x_offset, png_uint_32 *y_offset, + png_uint_16 *delay_num, png_uint_16 *delay_den, png_byte *dispose_op, + png_byte *blend_op)); -+PNG_EXPORT(1009, png_uint_32, png_set_next_frame_fcTL, -+ (png_structp png_ptr, png_infop info_ptr, png_uint_32 width, -+ png_uint_32 height, png_uint_32 x_offset, png_uint_32 y_offset, ++extern PNG_EXPORT(png_uint_32,png_set_next_frame_fcTL) ++ PNGARG((png_structp png_ptr, png_infop info_ptr, png_uint_32 width, ++ png_uint_32 height, png_uint_32 x_offset, png_uint_32 y_offset, + png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op, + png_byte blend_op)); -+PNG_EXPORT(1010, png_uint_32, png_get_next_frame_width, -+ (png_structp png_ptr, png_infop info_ptr)); -+PNG_EXPORT(1011, png_uint_32, png_get_next_frame_height, -+ (png_structp png_ptr, png_infop info_ptr)); -+PNG_EXPORT(1012, png_uint_32, png_get_next_frame_x_offset, -+ (png_structp png_ptr, png_infop info_ptr)); -+PNG_EXPORT(1013, png_uint_32, png_get_next_frame_y_offset, -+ (png_structp png_ptr, png_infop info_ptr)); -+PNG_EXPORT(1014, png_uint_16, png_get_next_frame_delay_num, -+ (png_structp png_ptr, png_infop info_ptr)); -+PNG_EXPORT(1015, png_uint_16, png_get_next_frame_delay_den, -+ (png_structp png_ptr, png_infop info_ptr)); -+PNG_EXPORT(1016, png_byte, png_get_next_frame_dispose_op, -+ (png_structp png_ptr, png_infop info_ptr)); -+PNG_EXPORT(1017, png_byte, png_get_next_frame_blend_op, -+ (png_structp png_ptr, png_infop info_ptr)); -+PNG_EXPORT(1018, png_byte, png_get_first_frame_is_hidden, -+ (png_structp png_ptr, png_infop info_ptr)); -+PNG_EXPORT(1019, png_uint_32, png_set_first_frame_is_hidden, -+ (png_structp png_ptr, png_infop info_ptr, png_byte is_hidden)); -+ -+/* dispose_op flags from inside fcTL */ -+#define PNG_DISPOSE_OP_NONE 0x00 -+#define PNG_DISPOSE_OP_BACKGROUND 0x01 -+#define PNG_DISPOSE_OP_PREVIOUS 0x02 -+ -+/* blend_op flags from inside fcTL */ -+#define PNG_BLEND_OP_SOURCE 0x00 -+#define PNG_BLEND_OP_OVER 0x01 ++extern PNG_EXPORT(void,png_ensure_fcTL_is_valid) ++ PNGARG((png_structp png_ptr, ++ png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, ++ png_byte dispose_op, png_byte blend_op)); ++extern PNG_EXPORT(png_uint_32,png_get_next_frame_width) ++ PNGARG((png_structp png_ptr, png_infop info_ptr)); ++extern PNG_EXPORT(png_uint_32,png_get_next_frame_height) ++ PNGARG((png_structp png_ptr, png_infop info_ptr)); ++extern PNG_EXPORT(png_uint_32,png_get_next_frame_x_offset) ++ PNGARG((png_structp png_ptr, png_infop info_ptr)); ++extern PNG_EXPORT(png_uint_32,png_get_next_frame_y_offset) ++ PNGARG((png_structp png_ptr, png_infop info_ptr)); ++extern PNG_EXPORT(png_uint_16,png_get_next_frame_delay_num) ++ PNGARG((png_structp png_ptr, png_infop info_ptr)); ++extern PNG_EXPORT(png_uint_16,png_get_next_frame_delay_den) ++ PNGARG((png_structp png_ptr, png_infop info_ptr)); ++extern PNG_EXPORT(png_byte,png_get_next_frame_dispose_op) ++ PNGARG((png_structp png_ptr, png_infop info_ptr)); ++extern PNG_EXPORT(png_byte,png_get_next_frame_blend_op) ++ PNGARG((png_structp png_ptr, png_infop info_ptr)); ++extern PNG_EXPORT(png_byte,png_get_first_frame_is_hidden) ++ PNGARG((png_structp png_ptr, png_infop info_ptr)); ++extern PNG_EXPORT(png_uint_32,png_set_first_frame_is_hidden) ++ PNGARG((png_structp png_ptr, png_infop info_ptr, png_byte is_hidden)); +#endif /* PNG_APNG_SUPPORTED */ + +#ifdef PNG_READ_APNG_SUPPORTED -+PNG_EXPORT(1020, void, png_read_frame_head, (png_structp png_ptr, ++extern PNG_EXPORT(void,png_read_frame_head) PNGARG((png_structp png_ptr, + png_infop info_ptr)); +#endif + #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED /* Provide a list of chunks and how they are to be handled, if the built-in handling or default unknown chunk handling is not desired. Any chunks not -diff -Nur libpng-1.5.1.orig/pnginfo.h libpng-1.5.1/pnginfo.h ---- libpng-1.5.1.orig/pnginfo.h 2011-02-03 05:58:17.000000000 +0100 -+++ libpng-1.5.1/pnginfo.h 2011-03-27 19:43:38.543370848 +0200 -@@ -266,5 +266,18 @@ - png_bytepp row_pointers; /* the image bits */ - #endif +@@ -2918,6 +3042,10 @@ + #define PNG_BACKGROUND_IS_GRAY 0x800 + #define PNG_HAVE_PNG_SIGNATURE 0x1000 + #define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */ ++#ifdef PNG_APNG_SUPPORTED ++#define PNG_HAVE_acTL 0x4000 ++#define PNG_HAVE_fcTL 0x8000L ++#endif + /* Flags for the transformations the PNG library does on the image data */ + #define PNG_BGR 0x0001 +@@ -3060,6 +3188,11 @@ + #define PNG_tIME png_byte png_tIME[5] = {116, 73, 77, 69, '\0'} + #define PNG_tRNS png_byte png_tRNS[5] = {116, 82, 78, 83, '\0'} + #define PNG_zTXt png_byte png_zTXt[5] = {122, 84, 88, 116, '\0'} +#ifdef PNG_APNG_SUPPORTED -+ png_uint_32 num_frames; /* including default image */ -+ png_uint_32 num_plays; -+ png_uint_32 next_frame_width; -+ png_uint_32 next_frame_height; -+ png_uint_32 next_frame_x_offset; -+ png_uint_32 next_frame_y_offset; -+ png_uint_16 next_frame_delay_num; -+ png_uint_16 next_frame_delay_den; -+ png_byte next_frame_dispose_op; -+ png_byte next_frame_blend_op; ++#define PNG_acTL png_byte png_acTL[5] = { 97, 99, 84, 76, '\0'} ++#define PNG_fcTL png_byte png_fcTL[5] = {102, 99, 84, 76, '\0'} ++#define PNG_fdAT png_byte png_fdAT[5] = {102, 100, 65, 84, '\0'} ++#endif + + #ifdef PNG_USE_GLOBAL_ARRAYS + PNG_EXPORT_VAR (png_byte FARDATA) png_IHDR[5]; +@@ -3083,6 +3216,11 @@ + PNG_EXPORT_VAR (png_byte FARDATA) png_tIME[5]; + PNG_EXPORT_VAR (png_byte FARDATA) png_tRNS[5]; + PNG_EXPORT_VAR (png_byte FARDATA) png_zTXt[5]; ++#ifdef PNG_APNG_SUPPORTED ++PNG_EXPORT_VAR (png_byte FARDATA) png_acTL[5]; ++PNG_EXPORT_VAR (png_byte FARDATA) png_fcTL[5]; ++PNG_EXPORT_VAR (png_byte FARDATA) png_fdAT[5]; +#endif + #endif /* PNG_USE_GLOBAL_ARRAYS */ + + #if defined(PNG_1_0_X) || defined (PNG_1_2_X) +@@ -3365,6 +3503,17 @@ + #endif + #endif + ++#ifdef PNG_WRITE_APNG_SUPPORTED ++PNG_EXTERN void png_write_acTL PNGARG((png_structp png_ptr, ++ png_uint_32 num_frames, png_uint_32 num_plays)); + - }; - #endif /* PNGINFO_H */ -diff -Nur libpng-1.5.1.orig/pngpread.c libpng-1.5.1/pngpread.c ---- libpng-1.5.1.orig/pngpread.c 2011-02-03 05:58:17.000000000 +0100 -+++ libpng-1.5.1/pngpread.c 2011-03-27 19:43:38.673370990 +0200 -@@ -263,6 +263,11 @@ ++PNG_EXTERN void png_write_fcTL PNGARG((png_structp png_ptr, ++ png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, ++ png_byte dispose_op, png_byte blend_op)); ++#endif ++ + /* Called when finished processing a row of data */ + PNG_EXTERN void png_write_finish_row PNGARG((png_structp png_ptr)) PNG_PRIVATE; + +@@ -3417,6 +3566,20 @@ + PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr, + png_infop info_ptr)) PNG_PRIVATE; + ++#ifdef PNG_READ_APNG_SUPPORTED ++/* Private, reset some things to become ready for reading next frame */ ++PNG_EXTERN void png_read_reset PNGARG((png_structp png_ptr)); ++PNG_EXTERN void png_read_reinit PNGARG((png_structp png_ptr, ++ png_infop info_ptr)); ++PNG_EXTERN void png_progressive_read_reset PNGARG((png_structp png_ptr)); ++#endif ++#ifdef PNG_WRITE_APNG_SUPPORTED ++/* Private, reset some things to become ready for writing next frame */ ++PNG_EXTERN void png_write_reset PNGARG((png_structp png_ptr)); ++PNG_EXTERN void png_write_reinit PNGARG((png_structp png_ptr, ++ png_infop info_ptr, png_uint_32 width, png_uint_32 height)); ++#endif ++ + /* These are the functions that do the transformations */ + #ifdef PNG_READ_FILLER_SUPPORTED + PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info, +@@ -3640,6 +3803,18 @@ + png_uint_32 length)) PNG_PRIVATE; + #endif + ++#ifdef PNG_READ_APNG_SUPPORTED ++PNG_EXTERN void png_handle_acTL PNGARG((png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 length)); ++PNG_EXTERN void png_handle_fcTL PNGARG((png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 length)); ++PNG_EXTERN void png_have_info PNGARG((png_structp png_ptr, png_infop info_ptr)); ++PNG_EXTERN void png_handle_fdAT PNGARG((png_structp png_ptr, png_infop info_ptr, ++ png_uint_32 length)); ++PNG_EXTERN void png_ensure_sequence_number PNGARG((png_structp png_ptr, ++ png_uint_32 length)); ++#endif ++ + PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE; + +diff -Nur libpng-1.2.44.orig/pngpread.c libpng-1.2.44/pngpread.c +--- libpng-1.2.44.orig/pngpread.c 2010-06-26 02:31:14.000000000 +0200 ++++ libpng-1.2.44/pngpread.c 2010-07-08 21:21:33.947205863 +0200 +@@ -206,6 +206,11 @@ #ifdef PNG_READ_zTXt_SUPPORTED - PNG_zTXt; + PNG_CONST PNG_zTXt; #endif +#ifdef PNG_READ_APNG_SUPPORTED -+ PNG_acTL; -+ PNG_fcTL; -+ PNG_fdAT; ++ PNG_CONST PNG_acTL; ++ PNG_CONST PNG_fcTL; ++ PNG_CONST PNG_fdAT; +#endif + #endif /* PNG_USE_LOCAL_ARRAYS */ /* First we make sure we have enough data for the 4 byte chunk name - * and the 4 byte chunk length before proceeding with decoding the -@@ -288,6 +293,103 @@ +@@ -232,6 +237,103 @@ png_ptr->mode |= PNG_HAVE_CHUNK_HEADER; } @@ -349,7 +510,7 @@ diff -Nur libpng-1.5.1.orig/pngpread.c libpng-1.5.1/pngpread.c + /* Discard trailing IDATs for the first frame */ + if (png_ptr->mode & PNG_HAVE_fcTL || png_ptr->num_frames_read > 1) + png_error(png_ptr, "out of place IDAT"); -+ ++ + if (png_ptr->push_length + 4 > png_ptr->buffer_size) + { + png_push_save_buffer(png_ptr); @@ -367,13 +528,13 @@ diff -Nur libpng-1.5.1.orig/pngpread.c libpng-1.5.1/pngpread.c + return; + } + png_ensure_sequence_number(png_ptr, 4); -+ ++ + if (!(png_ptr->mode & PNG_HAVE_fcTL)) + { + /* Discard trailing fdATs for frames other than the first */ + if (png_ptr->num_frames_read < 2) + png_error(png_ptr, "out of place fdAT"); -+ ++ + if (png_ptr->push_length + 4 > png_ptr->buffer_size) + { + png_push_save_buffer(png_ptr); @@ -389,7 +550,7 @@ diff -Nur libpng-1.5.1.orig/pngpread.c libpng-1.5.1/pngpread.c + png_ptr->idat_size = png_ptr->push_length - 4; + png_ptr->mode |= PNG_HAVE_IDAT; + png_ptr->process_mode = PNG_READ_IDAT_MODE; -+ ++ + return; + } + } @@ -400,23 +561,23 @@ diff -Nur libpng-1.5.1.orig/pngpread.c libpng-1.5.1/pngpread.c + png_push_save_buffer(png_ptr); + return; + } -+ ++ + png_read_reset(png_ptr); + png_ptr->mode &= ~PNG_HAVE_fcTL; -+ ++ + png_handle_fcTL(png_ptr, info_ptr, png_ptr->push_length); -+ ++ + if (!(png_ptr->mode & PNG_HAVE_fcTL)) + png_error(png_ptr, "missing required fcTL chunk"); -+ ++ + png_read_reinit(png_ptr, info_ptr); + png_progressive_read_reset(png_ptr); -+ ++ + if (png_ptr->frame_info_fn != NULL) + (*(png_ptr->frame_info_fn))(png_ptr, png_ptr->num_frames_read); -+ ++ + png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER; -+ ++ + return; + } + else @@ -432,16 +593,16 @@ diff -Nur libpng-1.5.1.orig/pngpread.c libpng-1.5.1/pngpread.c + png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER; + return; + } -+ ++ + return; + } +#endif /* PNG_READ_APNG_SUPPORTED */ + if (!png_memcmp(png_ptr->chunk_name, png_IDAT, 4)) - if (png_ptr->mode & PNG_AFTER_IDAT) - png_ptr->mode |= PNG_HAVE_CHUNK_AFTER_IDAT; -@@ -383,6 +485,9 @@ - png_benign_error(png_ptr, "Too many IDATs found"); + if (png_ptr->mode & PNG_AFTER_IDAT) + png_ptr->mode |= PNG_HAVE_CHUNK_AFTER_IDAT; +@@ -327,6 +429,9 @@ + png_error(png_ptr, "Too many IDAT's found"); } +#ifdef PNG_READ_APNG_SUPPORTED @@ -450,7 +611,7 @@ diff -Nur libpng-1.5.1.orig/pngpread.c libpng-1.5.1/pngpread.c png_ptr->idat_size = png_ptr->push_length; png_ptr->mode |= PNG_HAVE_IDAT; png_ptr->process_mode = PNG_READ_IDAT_MODE; -@@ -615,6 +720,38 @@ +@@ -559,6 +664,38 @@ } #endif @@ -489,14 +650,17 @@ diff -Nur libpng-1.5.1.orig/pngpread.c libpng-1.5.1/pngpread.c else { if (png_ptr->push_length + 4 > png_ptr->buffer_size) -@@ -810,11 +947,15 @@ +@@ -738,13 +875,17 @@ png_push_read_IDAT(png_structp png_ptr) { - PNG_IDAT; + #ifdef PNG_USE_LOCAL_ARRAYS +- PNG_CONST PNG_IDAT; ++ PNG_IDAT; +#ifdef PNG_READ_APNG_SUPPORTED + PNG_fdAT; + PNG_IEND; +#endif + #endif if (!(png_ptr->mode & PNG_HAVE_CHUNK_HEADER)) { png_byte chunk_length[4]; @@ -506,13 +670,13 @@ diff -Nur libpng-1.5.1.orig/pngpread.c libpng-1.5.1/pngpread.c { png_push_save_buffer(png_ptr); return; -@@ -826,17 +967,64 @@ +@@ -756,15 +897,62 @@ png_crc_read(png_ptr, png_ptr->chunk_name, 4); png_ptr->mode |= PNG_HAVE_CHUNK_HEADER; - if (png_memcmp(png_ptr->chunk_name, png_IDAT, 4)) +#ifdef PNG_READ_APNG_SUPPORTED -+ if (png_memcmp(png_ptr->chunk_name, png_fdAT, 4) ++ if (png_memcmp(png_ptr->chunk_name, (png_bytep)png_fdAT, 4) + && png_ptr->num_frames_read > 0) + { + if (png_ptr->flags & PNG_FLAG_ZLIB_FINISHED) @@ -548,10 +712,8 @@ diff -Nur libpng-1.5.1.orig/pngpread.c libpng-1.5.1/pngpread.c + ) { png_ptr->process_mode = PNG_READ_CHUNK_MODE; - if (!(png_ptr->flags & PNG_FLAG_ZLIB_FINISHED)) png_error(png_ptr, "Not enough compressed data"); - +#ifdef PNG_READ_APNG_SUPPORTED + if (png_ptr->frame_end_fn != NULL) + (*(png_ptr->frame_end_fn))(png_ptr, png_ptr->num_frames_read); @@ -572,7 +734,7 @@ diff -Nur libpng-1.5.1.orig/pngpread.c libpng-1.5.1/pngpread.c } if (png_ptr->idat_size && png_ptr->save_buffer_size) { -@@ -1843,6 +2031,17 @@ +@@ -1763,6 +1951,17 @@ png_set_read_fn(png_ptr, progressive_ptr, png_push_fill_buffer); } @@ -588,119 +750,25 @@ diff -Nur libpng-1.5.1.orig/pngpread.c libpng-1.5.1/pngpread.c +#endif + png_voidp PNGAPI - png_get_progressive_ptr(png_const_structp png_ptr) + png_get_progressive_ptr(png_structp png_ptr) { -diff -Nur libpng-1.5.1.orig/pngpriv.h libpng-1.5.1/pngpriv.h ---- libpng-1.5.1.orig/pngpriv.h 2011-02-03 05:58:17.000000000 +0100 -+++ libpng-1.5.1/pngpriv.h 2011-03-27 19:43:38.503370856 +0200 -@@ -275,6 +275,10 @@ - #define PNG_BACKGROUND_IS_GRAY 0x800 - #define PNG_HAVE_PNG_SIGNATURE 0x1000 - #define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */ -+#ifdef PNG_APNG_SUPPORTED -+#define PNG_HAVE_acTL 0x4000 -+#define PNG_HAVE_fcTL 0x8000L -+#endif - - /* Flags for the transformations the PNG library does on the image data */ - #define PNG_BGR 0x0001 -@@ -457,6 +461,14 @@ - #define PNG_tIME PNG_CONST png_byte png_tIME[5] = {116, 73, 77, 69, '\0'} - #define PNG_tRNS PNG_CONST png_byte png_tRNS[5] = {116, 82, 78, 83, '\0'} - #define PNG_zTXt PNG_CONST png_byte png_zTXt[5] = {122, 84, 88, 116, '\0'} -+#ifdef PNG_APNG_SUPPORTED -+#define PNG_acTL PNG_CONST png_byte png_acTL[5] = { 97, 99, 84, 76, '\0'} -+#define PNG_fcTL PNG_CONST png_byte png_fcTL[5] = {102, 99, 84, 76, '\0'} -+#define PNG_fdAT PNG_CONST png_byte png_fdAT[5] = {102, 100, 65, 84, '\0'} -+ -+/* For png_struct.apng_flags: */ -+#define PNG_FIRST_FRAME_HIDDEN 0x0001 -+#endif - - - /* Inhibit C++ name-mangling for libpng functions but not for system calls. */ -@@ -696,6 +708,17 @@ - int unit, png_const_charp width, png_const_charp height)); - #endif - -+#ifdef PNG_WRITE_APNG_SUPPORTED -+PNG_EXTERN void png_write_acTL PNGARG((png_structp png_ptr, -+ png_uint_32 num_frames, png_uint_32 num_plays)); -+ -+PNG_EXTERN void png_write_fcTL PNGARG((png_structp png_ptr, -+ png_uint_32 width, png_uint_32 height, -+ png_uint_32 x_offset, png_uint_32 y_offset, -+ png_uint_16 delay_num, png_uint_16 delay_den, -+ png_byte dispose_op, png_byte blend_op)); -+#endif -+ - /* Called when finished processing a row of data */ - PNG_EXTERN void png_write_finish_row PNGARG((png_structp png_ptr)); - -@@ -744,6 +767,20 @@ - PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr, - png_infop info_ptr)); - -+#ifdef PNG_READ_APNG_SUPPORTED -+/* Private, reset some things to become ready for reading next frame */ -+PNG_EXTERN void png_read_reset PNGARG((png_structp png_ptr)); -+PNG_EXTERN void png_read_reinit PNGARG((png_structp png_ptr, -+ png_infop info_ptr)); -+PNG_EXTERN void png_progressive_read_reset PNGARG((png_structp png_ptr)); -+#endif -+#ifdef PNG_WRITE_APNG_SUPPORTED -+/* Private, reset some things to become ready for writing next frame */ -+PNG_EXTERN void png_write_reset PNGARG((png_structp png_ptr)); -+PNG_EXTERN void png_write_reinit PNGARG((png_structp png_ptr, -+ png_infop info_ptr, png_uint_32 width, png_uint_32 height)); -+#endif -+ - /* These are the functions that do the transformations */ - #ifdef PNG_READ_FILLER_SUPPORTED - PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info, -@@ -972,6 +1009,25 @@ - png_uint_32 length)); - #endif - -+#ifdef PNG_READ_APNG_SUPPORTED -+PNG_EXTERN void png_handle_acTL PNGARG((png_structp png_ptr, png_infop info_ptr, -+ png_uint_32 length)); -+PNG_EXTERN void png_handle_fcTL PNGARG((png_structp png_ptr, png_infop info_ptr, -+ png_uint_32 length)); -+PNG_EXTERN void png_have_info PNGARG((png_structp png_ptr, png_infop info_ptr)); -+PNG_EXTERN void png_handle_fdAT PNGARG((png_structp png_ptr, png_infop info_ptr, -+ png_uint_32 length)); -+PNG_EXTERN void png_ensure_sequence_number PNGARG((png_structp png_ptr, -+ png_uint_32 length)); -+#endif -+#ifdef PNG_APNG_SUPPORTED -+PNG_EXTERN void png_ensure_fcTL_is_valid PNGARG((png_structp png_ptr, -+ png_uint_32 width, png_uint_32 height, -+ png_uint_32 x_offset, png_uint_32 y_offset, -+ png_uint_16 delay_num, png_uint_16 delay_den, -+ png_byte dispose_op, png_byte blend_op)); -+#endif -+ - PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 length)); - -diff -Nur libpng-1.5.1.orig/pngread.c libpng-1.5.1/pngread.c ---- libpng-1.5.1.orig/pngread.c 2011-02-03 05:58:17.000000000 +0100 -+++ libpng-1.5.1/pngread.c 2011-03-27 19:43:38.383370613 +0200 -@@ -292,6 +292,11 @@ +diff -Nur libpng-1.2.44.orig/pngread.c libpng-1.2.44/pngread.c +--- libpng-1.2.44.orig/pngread.c 2010-06-26 02:31:14.000000000 +0200 ++++ libpng-1.2.44/pngread.c 2010-07-08 21:21:33.676118515 +0200 +@@ -437,6 +437,11 @@ #ifdef PNG_READ_zTXt_SUPPORTED - PNG_zTXt; + PNG_CONST PNG_zTXt; #endif +#ifdef PNG_READ_APNG_SUPPORTED -+ PNG_acTL; -+ PNG_fcTL; -+ PNG_fdAT; ++ PNG_CONST PNG_acTL; ++ PNG_CONST PNG_fcTL; ++ PNG_CONST PNG_fdAT; +#endif + #endif /* PNG_USE_LOCAL_ARRAYS */ png_uint_32 length = png_read_chunk_header(png_ptr); PNG_CONST png_bytep chunk_name = png_ptr->chunk_name; - -@@ -344,6 +349,9 @@ - !(png_ptr->mode & PNG_HAVE_PLTE)) +@@ -481,6 +486,9 @@ + !(png_ptr->mode & PNG_HAVE_PLTE)) png_error(png_ptr, "Missing PLTE before IDAT"); +#ifdef PNG_READ_APNG_SUPPORTED @@ -709,10 +777,10 @@ diff -Nur libpng-1.5.1.orig/pngread.c libpng-1.5.1/pngread.c png_ptr->idat_size = length; png_ptr->mode |= PNG_HAVE_IDAT; break; -@@ -434,12 +442,96 @@ +@@ -553,12 +561,97 @@ + else if (!png_memcmp(chunk_name, png_iTXt, 4)) png_handle_iTXt(png_ptr, info_ptr, length); #endif - +#ifdef PNG_READ_APNG_SUPPORTED + else if (!png_memcmp(chunk_name, png_acTL, 4)) + png_handle_acTL(png_ptr, info_ptr, length); @@ -721,7 +789,6 @@ diff -Nur libpng-1.5.1.orig/pngread.c libpng-1.5.1/pngread.c + else if (!png_memcmp(chunk_name, png_fdAT, 4)) + png_handle_fdAT(png_ptr, info_ptr, length); +#endif -+ else png_handle_unknown(png_ptr, info_ptr, length); } @@ -733,37 +800,39 @@ diff -Nur libpng-1.5.1.orig/pngread.c libpng-1.5.1/pngread.c +png_read_frame_head(png_structp png_ptr, png_infop info_ptr) +{ + png_byte have_chunk_after_DAT; /* after IDAT or after fdAT */ -+ ++ + png_debug(0, "Reading frame head"); -+ ++ + if (!(png_ptr->mode & PNG_HAVE_acTL)) + png_error(png_ptr, "attempt to png_read_frame_head() but " + "no acTL present"); -+ ++ + /* do nothing for the main IDAT */ + if (png_ptr->num_frames_read == 0) + return; -+ ++ + png_crc_finish(png_ptr, 0); /* CRC from last IDAT or fdAT chunk */ -+ ++ + png_read_reset(png_ptr); + png_ptr->mode &= ~PNG_HAVE_fcTL; -+ ++ + have_chunk_after_DAT = 0; + for (;;) + { ++#ifdef PNG_USE_LOCAL_ARRAYS + PNG_IDAT; + PNG_fdAT; + PNG_fcTL; ++#endif + png_byte chunk_length[4]; + png_uint_32 length; -+ ++ + png_read_data(png_ptr, chunk_length, 4); + length = png_get_uint_31(png_ptr, chunk_length); -+ ++ + png_reset_crc(png_ptr); + png_crc_read(png_ptr, png_ptr->chunk_name, 4); -+ ++ + if (!png_memcmp(png_ptr->chunk_name, png_IDAT, 4)) + { + /* discard trailing IDATs for the first frame */ @@ -779,7 +848,7 @@ diff -Nur libpng-1.5.1.orig/pngread.c libpng-1.5.1/pngread.c + else if (!png_memcmp(png_ptr->chunk_name, png_fdAT, 4)) + { + png_ensure_sequence_number(png_ptr, length); -+ ++ + /* discard trailing fdATs for frames other than the first */ + if (!have_chunk_after_DAT && png_ptr->num_frames_read > 1) + png_crc_finish(png_ptr, length - 4); @@ -787,7 +856,7 @@ diff -Nur libpng-1.5.1.orig/pngread.c libpng-1.5.1/pngread.c + { + png_ptr->idat_size = length - 4; + png_ptr->mode |= PNG_HAVE_IDAT; -+ ++ + break; + } + else @@ -806,18 +875,18 @@ diff -Nur libpng-1.5.1.orig/pngread.c libpng-1.5.1/pngread.c /* Optional call to update the users info_ptr structure */ void PNGAPI png_read_update_info(png_structp png_ptr, png_infop info_ptr) -@@ -488,6 +580,10 @@ +@@ -599,6 +692,10 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row) { - PNG_IDAT; + PNG_CONST PNG_IDAT; +#ifdef PNG_READ_APNG_SUPPORTED -+ PNG_fdAT; -+ PNG_IEND; ++ PNG_CONST PNG_fdAT; ++ PNG_CONST PNG_IEND; +#endif PNG_CONST int png_pass_dsp_mask[7] = {0xff, 0x0f, 0xff, 0x33, 0xff, 0x55, - 0xff}; + 0xff}; PNG_CONST int png_pass_mask[7] = {0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff}; -@@ -642,13 +738,39 @@ +@@ -734,13 +831,39 @@ { if (!(png_ptr->zstream.avail_in)) { @@ -850,17 +919,17 @@ diff -Nur libpng-1.5.1.orig/pngread.c libpng-1.5.1/pngread.c + bytes_to_skip = png_ptr->idat_size; + continue; + } -+ ++ + png_ensure_sequence_number(png_ptr, png_ptr->idat_size); -+ ++ + png_ptr->idat_size -= 4; + } +#endif } png_ptr->zstream.avail_in = (uInt)png_ptr->zbuf_size; png_ptr->zstream.next_in = png_ptr->zbuf; -@@ -668,6 +790,9 @@ - png_benign_error(png_ptr, "Extra compressed data"); +@@ -758,6 +881,9 @@ + png_error(png_ptr, "Extra compressed data"); png_ptr->mode |= PNG_AFTER_IDAT; png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED; +#ifdef PNG_READ_APNG_SUPPORTED @@ -868,23 +937,23 @@ diff -Nur libpng-1.5.1.orig/pngread.c libpng-1.5.1/pngread.c +#endif break; } - -@@ -952,6 +1077,11 @@ + if (ret != Z_OK) +@@ -1015,6 +1141,11 @@ #ifdef PNG_READ_zTXt_SUPPORTED - PNG_zTXt; + PNG_CONST PNG_zTXt; #endif +#ifdef PNG_READ_APNG_SUPPORTED -+ PNG_acTL; -+ PNG_fcTL; -+ PNG_fdAT; ++ PNG_CONST PNG_acTL; ++ PNG_CONST PNG_fcTL; ++ PNG_CONST PNG_fdAT; +#endif + #endif /* PNG_USE_LOCAL_ARRAYS */ png_uint_32 length = png_read_chunk_header(png_ptr); PNG_CONST png_bytep chunk_name = png_ptr->chunk_name; - -@@ -1073,6 +1203,15 @@ +@@ -1115,6 +1246,14 @@ + else if (!png_memcmp(chunk_name, png_iTXt, 4)) png_handle_iTXt(png_ptr, info_ptr, length); #endif - +#ifdef PNG_READ_APNG_SUPPORTED + else if (!png_memcmp(chunk_name, png_acTL, 4)) + png_handle_acTL(png_ptr, info_ptr, length); @@ -893,14 +962,13 @@ diff -Nur libpng-1.5.1.orig/pngread.c libpng-1.5.1/pngread.c + else if (!png_memcmp(chunk_name, png_fdAT, 4)) + png_handle_fdAT(png_ptr, info_ptr, length); +#endif -+ else png_handle_unknown(png_ptr, info_ptr, length); } while (!(png_ptr->mode & PNG_HAVE_IEND)); -diff -Nur libpng-1.5.1.orig/pngrtran.c libpng-1.5.1/pngrtran.c ---- libpng-1.5.1.orig/pngrtran.c 2011-02-03 05:58:17.000000000 +0100 -+++ libpng-1.5.1/pngrtran.c 2011-03-27 19:43:38.813371313 +0200 -@@ -1425,7 +1425,7 @@ +diff -Nur libpng-1.2.44.orig/pngrtran.c libpng-1.2.44/pngrtran.c +--- libpng-1.2.44.orig/pngrtran.c 2010-06-26 02:31:14.000000000 +0200 ++++ libpng-1.2.44/pngrtran.c 2010-07-08 21:21:34.149609181 +0200 +@@ -1352,7 +1352,7 @@ * pixels. This check added to libpng-1.2.19 */ #if (PNG_WARN_UNINITIALIZED_ROW==1) @@ -909,10 +977,10 @@ diff -Nur libpng-1.5.1.orig/pngrtran.c libpng-1.5.1/pngrtran.c #else png_warning(png_ptr, "Uninitialized row"); #endif -diff -Nur libpng-1.5.1.orig/pngrutil.c libpng-1.5.1/pngrutil.c ---- libpng-1.5.1.orig/pngrutil.c 2011-02-03 05:58:17.000000000 +0100 -+++ libpng-1.5.1/pngrutil.c 2011-03-27 19:43:38.743371274 +0200 -@@ -569,6 +569,11 @@ +diff -Nur libpng-1.2.44.orig/pngrutil.c libpng-1.2.44/pngrutil.c +--- libpng-1.2.44.orig/pngrutil.c 2010-06-26 02:31:14.000000000 +0200 ++++ libpng-1.2.44/pngrutil.c 2010-07-08 21:21:34.045873588 +0200 +@@ -460,6 +460,11 @@ filter_type = buf[11]; interlace_type = buf[12]; @@ -924,7 +992,7 @@ diff -Nur libpng-1.5.1.orig/pngrutil.c libpng-1.5.1/pngrutil.c /* Set internal variables */ png_ptr->width = width; png_ptr->height = height; -@@ -2492,6 +2497,172 @@ +@@ -2348,6 +2353,172 @@ } #endif @@ -936,7 +1004,7 @@ diff -Nur libpng-1.5.1.orig/pngrutil.c libpng-1.5.1/pngrutil.c + png_uint_32 num_frames; + png_uint_32 num_plays; + png_uint_32 didSet; -+ ++ + png_debug(1, "in png_handle_acTL"); + + if (!(png_ptr->mode & PNG_HAVE_IHDR)) @@ -961,13 +1029,13 @@ diff -Nur libpng-1.5.1.orig/pngrutil.c libpng-1.5.1/pngrutil.c + png_crc_finish(png_ptr, length); + return; + } -+ ++ + png_crc_read(png_ptr, data, 8); + png_crc_finish(png_ptr, 0); -+ ++ + num_frames = png_get_uint_31(png_ptr, data); + num_plays = png_get_uint_31(png_ptr, data + 4); -+ ++ + /* the set function will do error checking on num_frames */ + didSet = png_set_acTL(png_ptr, info_ptr, num_frames, num_plays); + if(didSet) @@ -1064,7 +1132,7 @@ diff -Nur libpng-1.5.1.orig/pngrutil.c libpng-1.5.1/pngrutil.c +png_handle_fdAT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) +{ + png_ensure_sequence_number(png_ptr, length); -+ ++ + /* This function is only called from png_read_end(), png_read_info(), + * and png_push_read_chunk() which means that: + * - the user doesn't want to read this frame @@ -1079,25 +1147,25 @@ diff -Nur libpng-1.5.1.orig/pngrutil.c libpng-1.5.1/pngrutil.c +{ + png_byte data[4]; + png_uint_32 sequence_number; -+ ++ + if (length < 4) + png_error(png_ptr, "invalid fcTL or fdAT chunk found"); -+ ++ + png_crc_read(png_ptr, data, 4); + sequence_number = png_get_uint_31(png_ptr, data); -+ ++ + if (sequence_number != png_ptr->next_seq_num) + png_error(png_ptr, "fcTL or fdAT chunk with out-of-order sequence " + "number found"); -+ ++ + png_ptr->next_seq_num++; +} +#endif /* PNG_READ_APNG_SUPPORTED */ + /* This function is called when we haven't found a handler for a - * chunk. If there isn't a problem with the chunk itself (ie bad - * chunk name, CRC, or a critical chunk), the chunk is silently ignored -@@ -3613,4 +3784,73 @@ + chunk. If there isn't a problem with the chunk itself (ie bad + chunk name, CRC, or a critical chunk), the chunk is silently ignored +@@ -3379,4 +3550,75 @@ png_ptr->flags |= PNG_FLAG_ROW_INIT; } @@ -1123,13 +1191,14 @@ diff -Nur libpng-1.5.1.orig/pngrutil.c libpng-1.5.1/pngrutil.c + png_ptr->height = info_ptr->next_frame_height; + png_ptr->rowbytes = PNG_ROWBYTES(png_ptr->pixel_depth,png_ptr->width); + if (png_ptr->prev_row) -+ png_memset(png_ptr->prev_row, 0, png_ptr->rowbytes + 1); ++ png_memset_check(png_ptr, png_ptr->prev_row, 0, png_ptr->rowbytes + 1); +} + +/* same as png_read_reset() but for the progressive reader */ +void /* PRIVATE */ +png_progressive_read_reset(png_structp png_ptr) +{ ++#ifdef PNG_USE_LOCAL_ARRAYS + /* start of interlace block */ + const int FARDATA png_pass_start[] = {0, 4, 0, 2, 0, 1, 0}; + @@ -1141,7 +1210,8 @@ diff -Nur libpng-1.5.1.orig/pngrutil.c libpng-1.5.1/pngrutil.c + + /* offset to next interlace block in the y direction */ + const int FARDATA png_pass_yinc[] = {8, 8, 8, 4, 4, 2, 2}; -+ ++#endif ++ + if (png_ptr->interlaced) + { + if (!(png_ptr->transformations & PNG_INTERLACE)) @@ -1171,11 +1241,11 @@ diff -Nur libpng-1.5.1.orig/pngrutil.c libpng-1.5.1/pngrutil.c +} +#endif /* PNG_READ_APNG_SUPPORTED */ #endif /* PNG_READ_SUPPORTED */ -diff -Nur libpng-1.5.1.orig/pngset.c libpng-1.5.1/pngset.c ---- libpng-1.5.1.orig/pngset.c 2011-02-03 05:58:17.000000000 +0100 -+++ libpng-1.5.1/pngset.c 2011-03-27 19:43:38.733370835 +0200 -@@ -211,6 +211,11 @@ - info_ptr->rowbytes = 0; +diff -Nur libpng-1.2.44.orig/pngset.c libpng-1.2.44/pngset.c +--- libpng-1.2.44.orig/pngset.c 2010-06-26 02:31:14.000000000 +0200 ++++ libpng-1.2.44/pngset.c 2010-07-08 21:21:33.996027603 +0200 +@@ -266,6 +266,11 @@ + info_ptr->rowbytes = (png_size_t)0; else info_ptr->rowbytes = PNG_ROWBYTES(info_ptr->pixel_depth, width); + @@ -1186,7 +1256,7 @@ diff -Nur libpng-1.5.1.orig/pngset.c libpng-1.5.1/pngset.c } #ifdef PNG_oFFs_SUPPORTED -@@ -954,6 +959,142 @@ +@@ -960,6 +965,142 @@ } #endif /* PNG_sPLT_SUPPORTED */ @@ -1223,12 +1293,12 @@ diff -Nur libpng-1.5.1.orig/pngset.c libpng-1.5.1/pngset.c + "> 2^31-1"); + return (0); + } -+ ++ + info_ptr->num_frames = num_frames; + info_ptr->num_plays = num_plays; -+ ++ + info_ptr->valid |= PNG_INFO_acTL; -+ ++ + return (1); +} + @@ -1249,10 +1319,10 @@ diff -Nur libpng-1.5.1.orig/pngset.c libpng-1.5.1/pngset.c + "ignored"); + return (0); + } -+ ++ + png_ensure_fcTL_is_valid(png_ptr, width, height, x_offset, y_offset, + delay_num, delay_den, dispose_op, blend_op); -+ ++ + if (blend_op == PNG_BLEND_OP_OVER) + { + if (!(png_ptr->color_type & PNG_COLOR_MASK_ALPHA) && @@ -1272,13 +1342,13 @@ diff -Nur libpng-1.5.1.orig/pngset.c libpng-1.5.1/pngset.c + info_ptr->next_frame_delay_den = delay_den; + info_ptr->next_frame_dispose_op = dispose_op; + info_ptr->next_frame_blend_op = blend_op; -+ ++ + info_ptr->valid |= PNG_INFO_fcTL; -+ ++ + return (1); +} + -+void /* PRIVATE */ ++void PNGAPI +png_ensure_fcTL_is_valid(png_structp png_ptr, + png_uint_32 width, png_uint_32 height, + png_uint_32 x_offset, png_uint_32 y_offset, @@ -1313,15 +1383,15 @@ diff -Nur libpng-1.5.1.orig/pngset.c libpng-1.5.1/pngset.c + png_byte is_hidden) +{ + png_debug(1, "in png_first_frame_is_hidden()"); -+ ++ + if (png_ptr == NULL) + return 0; -+ ++ + if(is_hidden) + png_ptr->apng_flags |= PNG_FIRST_FRAME_HIDDEN; + else + png_ptr->apng_flags &= ~PNG_FIRST_FRAME_HIDDEN; -+ ++ + return 1; +} +#endif /* PNG_APNG_SUPPORTED */ @@ -1329,41 +1399,10 @@ diff -Nur libpng-1.5.1.orig/pngset.c libpng-1.5.1/pngset.c #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED void PNGAPI png_set_unknown_chunks(png_structp png_ptr, -diff -Nur libpng-1.5.1.orig/pngstruct.h libpng-1.5.1/pngstruct.h ---- libpng-1.5.1.orig/pngstruct.h 2011-02-03 05:58:17.000000000 +0100 -+++ libpng-1.5.1/pngstruct.h 2011-03-27 19:43:38.603370828 +0200 -@@ -287,6 +287,27 @@ - png_alloc_size_t user_chunk_malloc_max; - #endif - -+#ifdef PNG_APNG_SUPPORTED -+ png_uint_32 apng_flags; -+ png_uint_32 next_seq_num; /* next fcTL/fdAT chunk sequence number */ -+ png_uint_32 first_frame_width; -+ png_uint_32 first_frame_height; -+ -+#ifdef PNG_READ_APNG_SUPPORTED -+ png_uint_32 num_frames_read; /* incremented after all image data of */ -+ /* a frame is read */ -+#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -+ png_progressive_frame_ptr frame_info_fn; /* frame info read callback */ -+ png_progressive_frame_ptr frame_end_fn; /* frame data read callback */ -+#endif -+#endif -+ -+#ifdef PNG_WRITE_APNG_SUPPORTED -+ png_uint_32 num_frames_to_write; -+ png_uint_32 num_frames_written; -+#endif -+#endif /* PNG_APNG_SUPPORTED */ -+ - /* New member added in libpng-1.0.25 and 1.2.17 */ - #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED - /* Storage for unknown chunk that the library doesn't recognize. */ -diff -Nur libpng-1.5.1.orig/pngwrite.c libpng-1.5.1/pngwrite.c ---- libpng-1.5.1.orig/pngwrite.c 2011-02-03 05:58:17.000000000 +0100 -+++ libpng-1.5.1/pngwrite.c 2011-03-27 19:43:38.643370780 +0200 -@@ -58,6 +58,10 @@ +diff -Nur libpng-1.2.44.orig/pngwrite.c libpng-1.2.44/pngwrite.c +--- libpng-1.2.44.orig/pngwrite.c 2010-06-26 02:31:14.000000000 +0200 ++++ libpng-1.2.44/pngwrite.c 2010-07-08 21:21:33.847089331 +0200 +@@ -57,6 +57,10 @@ /* The rest of these check to see if the valid field has the appropriate * flag set, and if it does, writes the chunk. */ @@ -1373,9 +1412,9 @@ diff -Nur libpng-1.5.1.orig/pngwrite.c libpng-1.5.1/pngwrite.c +#endif #ifdef PNG_WRITE_gAMA_SUPPORTED if (info_ptr->valid & PNG_INFO_gAMA) - png_write_gAMA_fixed(png_ptr, info_ptr->gamma); -@@ -300,6 +304,10 @@ - + { +@@ -319,6 +323,10 @@ + return; if (!(png_ptr->mode & PNG_HAVE_IDAT)) png_error(png_ptr, "No IDATs written into file"); +#ifdef PNG_WRITE_APNG_SUPPORTED @@ -1385,8 +1424,8 @@ diff -Nur libpng-1.5.1.orig/pngwrite.c libpng-1.5.1/pngwrite.c /* See if user wants us to write information chunks */ if (info_ptr != NULL) -@@ -1602,4 +1610,39 @@ - PNG_UNUSED(params) +@@ -1589,4 +1597,39 @@ + params = params; } #endif + @@ -1399,16 +1438,16 @@ diff -Nur libpng-1.5.1.orig/pngwrite.c libpng-1.5.1/pngwrite.c + png_byte blend_op) +{ + png_debug(1, "in png_write_frame_head"); -+ ++ + /* there is a chance this has been set after png_write_info was called, + * so it would be set but not written. is there a way to be sure? */ + if (!(info_ptr->valid & PNG_INFO_acTL)) + png_error(png_ptr, "png_write_frame_head(): acTL not set"); -+ ++ + png_write_reset(png_ptr); -+ ++ + png_write_reinit(png_ptr, info_ptr, width, height); -+ ++ + if ( !(png_ptr->num_frames_written == 0 && + (png_ptr->apng_flags & PNG_FIRST_FRAME_HIDDEN) ) ) + png_write_fcTL(png_ptr, width, height, x_offset, y_offset, @@ -1416,21 +1455,21 @@ diff -Nur libpng-1.5.1.orig/pngwrite.c libpng-1.5.1/pngwrite.c +} + +void PNGAPI -+png_write_frame_tail(png_structp png_ptr, png_infop info_ptr) ++png_write_frame_tail(png_structp png_ptr, png_infop png_info) +{ + png_debug(1, "in png_write_frame_tail"); -+ ++ + png_ptr->num_frames_written++; +} +#endif /* PNG_WRITE_APNG_SUPPORTED */ + #endif /* PNG_WRITE_SUPPORTED */ -diff -Nur libpng-1.5.1.orig/pngwutil.c libpng-1.5.1/pngwutil.c ---- libpng-1.5.1.orig/pngwutil.c 2011-02-03 05:58:17.000000000 +0100 -+++ libpng-1.5.1/pngwutil.c 2011-03-27 19:43:38.803370805 +0200 -@@ -596,6 +596,11 @@ +diff -Nur libpng-1.2.44.orig/pngwutil.c libpng-1.2.44/pngwutil.c +--- libpng-1.2.44.orig/pngwutil.c 2010-06-26 02:31:14.000000000 +0200 ++++ libpng-1.2.44/pngwutil.c 2010-07-08 21:21:34.095873630 +0200 +@@ -516,6 +516,11 @@ /* Write the chunk */ - png_write_chunk(png_ptr, png_IHDR, buf, (png_size_t)13); + png_write_chunk(png_ptr, (png_bytep)png_IHDR, buf, (png_size_t)13); +#ifdef PNG_WRITE_APNG_SUPPORTED + png_ptr->first_frame_width = width; @@ -1440,38 +1479,38 @@ diff -Nur libpng-1.5.1.orig/pngwutil.c libpng-1.5.1/pngwutil.c /* Initialize zlib with PNG info */ png_ptr->zstream.zalloc = png_zalloc; png_ptr->zstream.zfree = png_zfree; -@@ -742,6 +747,9 @@ - png_write_IDAT(png_structp png_ptr, png_bytep data, png_size_t length) +@@ -641,6 +646,9 @@ { + #ifdef PNG_USE_LOCAL_ARRAYS PNG_IDAT; +#ifdef PNG_WRITE_APNG_SUPPORTED + PNG_fdAT; +#endif + #endif png_debug(1, "in png_write_IDAT"); - -@@ -791,7 +799,28 @@ - "Invalid zlib compression method or flags in IDAT"); +@@ -686,7 +694,28 @@ + "Invalid zlib compression method or flags in IDAT"); } +#ifdef PNG_WRITE_APNG_SUPPORTED + if(png_ptr->num_frames_written == 0) +#endif - png_write_chunk(png_ptr, png_IDAT, data, length); + png_write_chunk(png_ptr, (png_bytep)png_IDAT, data, length); +#ifdef PNG_WRITE_APNG_SUPPORTED + else + { + png_byte buf[4]; -+ -+ png_write_chunk_start(png_ptr, png_fdAT, 4 + length); -+ ++ ++ png_write_chunk_start(png_ptr, (png_bytep)png_fdAT, 4 + length); ++ + png_save_uint_32(buf, png_ptr->next_seq_num); + png_write_chunk_data(png_ptr, buf, 4); -+ ++ + png_write_chunk_data(png_ptr, data, length); -+ ++ + png_write_chunk_end(png_ptr); -+ ++ + png_ptr->next_seq_num++; + } +#endif @@ -1479,7 +1518,7 @@ diff -Nur libpng-1.5.1.orig/pngwutil.c libpng-1.5.1/pngwutil.c png_ptr->mode |= PNG_HAVE_IDAT; } -@@ -1769,6 +1798,66 @@ +@@ -1754,6 +1783,70 @@ } #endif @@ -1488,20 +1527,22 @@ diff -Nur libpng-1.5.1.orig/pngwutil.c libpng-1.5.1/pngwutil.c +png_write_acTL(png_structp png_ptr, + png_uint_32 num_frames, png_uint_32 num_plays) +{ ++#ifdef PNG_USE_LOCAL_ARRAYS + PNG_acTL; ++#endif + png_byte data[16]; -+ ++ + png_debug(1, "in png_write_acTL"); -+ ++ + png_ptr->num_frames_to_write = num_frames; -+ ++ + if (png_ptr->apng_flags & PNG_FIRST_FRAME_HIDDEN) + num_frames--; -+ ++ + png_save_uint_32(data, num_frames); + png_save_uint_32(data + 4, num_plays); -+ -+ png_write_chunk(png_ptr, png_acTL, data, (png_size_t)8); ++ ++ png_write_chunk(png_ptr, (png_bytep)png_acTL, data, (png_size_t)8); +} + +void /* PRIVATE */ @@ -1510,11 +1551,13 @@ diff -Nur libpng-1.5.1.orig/pngwutil.c libpng-1.5.1/pngwutil.c + png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op, + png_byte blend_op) +{ ++#ifdef PNG_USE_LOCAL_ARRAYS + PNG_fcTL; ++#endif + png_byte data[26]; -+ ++ + png_debug(1, "in png_write_fcTL"); -+ ++ + if (png_ptr->num_frames_written == 0 && (x_offset != 0 || y_offset != 0)) + png_error(png_ptr, "x and/or y offset for the first frame aren't 0"); + if (png_ptr->num_frames_written == 0 && @@ -1522,11 +1565,11 @@ diff -Nur libpng-1.5.1.orig/pngwutil.c libpng-1.5.1/pngwutil.c + height != png_ptr->first_frame_height)) + png_error(png_ptr, "width and/or height in the first frame's fcTL " + "don't match the ones in IHDR"); -+ ++ + /* more error checking */ + png_ensure_fcTL_is_valid(png_ptr, width, height, x_offset, y_offset, + delay_num, delay_den, dispose_op, blend_op); -+ ++ + png_save_uint_32(data, png_ptr->next_seq_num); + png_save_uint_32(data + 4, width); + png_save_uint_32(data + 8, height); @@ -1536,9 +1579,9 @@ diff -Nur libpng-1.5.1.orig/pngwutil.c libpng-1.5.1/pngwutil.c + png_save_uint_16(data + 22, delay_den); + data[24] = dispose_op; + data[25] = blend_op; -+ -+ png_write_chunk(png_ptr, png_fcTL, data, (png_size_t)26); -+ ++ ++ png_write_chunk(png_ptr, (png_bytep)png_fcTL, data, (png_size_t)26); ++ + png_ptr->next_seq_num++; +} +#endif /* PNG_WRITE_APNG_SUPPORTED */ @@ -1546,18 +1589,18 @@ diff -Nur libpng-1.5.1.orig/pngwutil.c libpng-1.5.1/pngwutil.c /* Initializes the row writing capability of libpng */ void /* PRIVATE */ png_write_start_row(png_structp png_ptr) -@@ -2203,8 +2292,8 @@ +@@ -2159,8 +2252,8 @@ #ifndef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED if (png_ptr->row_number == 0 && filter_to_do == PNG_ALL_FILTERS) { -- /* These will never be selected so we need not test them. */ -- filter_to_do &= ~(PNG_FILTER_UP | PNG_FILTER_PAETH); -+ /* These use previous row */ -+ filter_to_do &= ~(PNG_FILTER_UP | PNG_FILTER_AVG | PNG_FILTER_PAETH); +- /* These will never be selected so we need not test them. */ +- filter_to_do &= ~(PNG_FILTER_UP | PNG_FILTER_PAETH); ++ /* These use previous row */ ++ filter_to_do &= ~(PNG_FILTER_UP | PNG_FILTER_AVG | PNG_FILTER_PAETH); } - #endif + #endif -@@ -2945,4 +3034,39 @@ +@@ -2829,4 +2922,39 @@ } #endif } @@ -1584,12 +1627,12 @@ diff -Nur libpng-1.5.1.orig/pngwutil.c libpng-1.5.1/pngwutil.c + height > png_ptr->first_frame_height) + png_error(png_ptr, "width and/or height for a frame greater than" + "the ones in IHDR"); -+ ++ + png_set_IHDR(png_ptr, info_ptr, width, height, + info_ptr->bit_depth, info_ptr->color_type, + info_ptr->interlace_type, info_ptr->compression_type, + info_ptr->filter_type); -+ ++ + png_ptr->width = width; + png_ptr->height = height; + png_ptr->rowbytes = PNG_ROWBYTES(png_ptr->pixel_depth, width); diff --git a/package/libpng/patches/patch-ltmain_sh b/package/libpng/patches/patch-ltmain_sh index 8ead586e9..3dc47967e 100644 --- a/package/libpng/patches/patch-ltmain_sh +++ b/package/libpng/patches/patch-ltmain_sh @@ -1,11 +1,11 @@ ---- libpng-1.5.1.orig/ltmain.sh 2011-02-03 05:58:21.000000000 +0100 -+++ libpng-1.5.1/ltmain.sh 2011-03-27 19:35:09.613370655 +0200 -@@ -5840,7 +5840,7 @@ func_mode_link () - # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization +--- libpng-1.2.44.orig/ltmain.sh 2009-11-22 15:45:24.000000000 +0100 ++++ libpng-1.2.44/ltmain.sh 2011-01-14 00:13:24.000000000 +0100 +@@ -4765,7 +4765,7 @@ func_mode_link () + # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC + # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -- -O*|-flto*|-fwhopr*|-fuse-linker-plugin) -+ -O*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*) +- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) ++ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-fstack-protector*|-flto) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" diff --git a/package/openjdk/Makefile b/package/openjdk/Makefile index 8802ee529..d8a932f70 100644 --- a/package/openjdk/Makefile +++ b/package/openjdk/Makefile @@ -15,8 +15,9 @@ PKG_MD5SUM:= 2d2bbbb0f9b81f1fec41ec730da8a933 \ d526d0848c88607ce4e3a0a4edb75d50 PKG_DESCR:= OpenJDK Java VM PKG_SECTION:= lang -PKG_BUILDDEP:= alsa-lib xproto jpeg zlib libX11 libpng freetype cups -PKG_BUILDDEP+= libXt libXp libXinerama libXrender libXtst +PKG_BUILDDEP:= alsa-lib xproto jpeg zlib giflib libpng freetype cups +PKG_BUILDDEP+= libX11 libXt libXp libXinerama libXrender libXtst +PKG_DEPENDS:= zlib libstdcxx libffi PKG_URL:= http://openjdk.org/ PKG_SITES:= http://download.java.net/openjdk/jdk6/promoted/b22/ \ http://mirror.netcologne.de/apache.org/xml/xalan-j/binaries/ \ @@ -54,22 +55,26 @@ include $(TOPDIR)/mk/package.mk $(eval $(call PKG_template,OPENJDK,openjdk,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) -BUILD_STYLE:= manual -INSTALL_STYLE:= manual TARGET_CFLAGS:= $(filter-out -fhonour-copts,$(TARGET_CFLAGS)) +BOOTSTRAPJDK:= ${STAGING_JAVA_HOST_DIR}/bootstrap-jdk ifeq ($(ADK_PACKAGE_OPENJDK_ZERO),y) -CONFIGURE_ARGS+= --enable-zero +CONFIGURE_BACKEND:= --enable-zero endif ifeq ($(ADK_PACKAGE_OPENJDK_SHARK),y) -CONFIGURE_ARGS+= --enable-shark +CONFIGURE_BACKEND:= --enable-shark +endif +ifeq ($(ADK_PACKAGE_OPENJDK_CACAO),y) +CONFIGURE_BACKEND:= --enable-cacao +endif +ifeq ($(ADK_PACKAGE_OPENJDK_JAMVM),y) +CONFIGURE_BACKEND:= --enable-jamvm endif -BOOTSTRAPJDK:= ${WRKDIST}/bootstrap-jdk +CONFIGURE_ARGS+= $(CONFIGURE_BACKEND) CONFIGURE_ARGS+= --disable-docs \ - --enable-bootstrap \ + --disable-bootstrap \ --enable-openjdk-cross-compilation \ - --with-cc-for-build=$(CC_FOR_BUILD) \ --with-openjdk-src-dir=$(WRKDIST)/$(PKG_NAME)-$(PKG_VERSION) \ --with-xalan2-jar=${WRKDIST}/${XALAN_NAME}_${XALAN_VERSION}/xalan.jar \ --with-xalan2-serializer-jar=${WRKDIST}/${XALAN_NAME}_${XALAN_VERSION}/serializer.jar \ @@ -83,12 +88,13 @@ CONFIGURE_ARGS+= --disable-docs \ --with-native2ascii=$(BOOTSTRAPJDK)/bin/native2ascii \ --without-rhino -OPENJDK_NATIVE_ENV+= JAVACFLAGS="-cp ${STAGING_JAVA_HOST_DIR}/usr/share/java/libgcj-4.5.2.jar" -OPENJDK_NATIVE_ENV+= DYLD_LIBRARY_PATH=$(STAGING_JAVA_HOST_DIR)/usr/lib:$(STAGING_JAVA_HOST_DIR)/usr/lib64 -OPENJDK_NATIVE_ENV+= LD_LIBRARY_PATH=$(STAGING_JAVA_HOST_DIR)/usr/lib:$(STAGING_JAVA_HOST_DIR)/usr/lib64 -OPENJDK_NATIVE_ENV+= ADK_ECJ=$(STAGING_JAVA_HOST_DIR)/usr/bin/ecj +MAKE_ENV+= ALT_COMPILER_PATH=$(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME) \ + GCC_HONOUR_COPTS=s -OPENJDK_BUILD_ENV+= ALT_COMPILER_PATH=$(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/bin +OPENJDK_NATIVE_ENV+= ALT_COMPILER_PATH=$(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME) \ + GCC_HONOUR_COPTS=s \ + TARGET_ALIAS=$(GNU_TARGET_NAME) BUILD_ALIAS=$(GNU_HOST_NAME) HOST_ALIAS=$(GNU_TARGET_NAME) +ALL_TARGET:= icedtea do-extract: cd ${WRKDIST}; mkdir $(PKG_NAME)-$(PKG_VERSION); \ @@ -96,35 +102,43 @@ do-extract: cd $(WRKDIST); tar xzf $(TOPDIR)/dl/$(ICEDTEA_NAME)-$(ICEDTEA_VERSION).tar.gz cd ${WRKDIST}; tar xzf ${TOPDIR}/dl/${XALAN_NAME}_${XALAN_VERSION}-bin.tar.gz mkdir -p ${WRKBUILD}/drops - cd ${TOPDIR}/dl; cp jaxp144_01.zip jdk6-jaf-b20.zip jdk6-jaxws-b20.zip \ - ${WRKBUILD}/drops + cd ${TOPDIR}/dl; cp jaxp144_01.zip jdk6-jaf-b20.zip jdk6-jaxws-b20.zip ${WRKBUILD}/drops pre-configure: cd ${WRKBUILD}; rm -rf config.{cache,status}; \ - export ${OPENJDK_NATIVE_ENV}; ./configure \ - --enable-bootstrap \ - --enable-zero \ - --disable-openjdk-cross-compilation \ - --with-openjdk-src-dir=$(WRKDIST)/$(PKG_NAME)-$(PKG_VERSION) \ - --with-jdk-home=$(STAGING_JAVA_HOST_DIR)/usr/lib/jvm \ - --with-java=$(STAGING_JAVA_HOST_DIR)/usr/bin/java \ - --with-javac=$(STAGING_JAVA_HOST_DIR)/usr/bin/ecj \ - --with-gcj=$(STAGING_JAVA_HOST_DIR)/usr/bin/gcj \ - --with-ecj-jar=${STAGING_JAVA_HOST_DIR}/usr/share/ecj.jar \ - --with-xalan2-jar=${WRKDIST}/${XALAN_NAME}_${XALAN_VERSION}/xalan.jar \ - --with-xalan2-serializer-jar=${WRKDIST}/${XALAN_NAME}_${XALAN_VERSION}/serializer.jar \ - --with-xerces2-jar=${WRKDIST}/${XALAN_NAME}_${XALAN_VERSION}/xercesImpl.jar \ - --without-rhino \ - --disable-docs \ - && $(MAKE) && $(CP) $(WRKSRC)/openjdk.build/j2sdk-image ${WRKDIST}/bootstrap-jdk && $(MAKE) clean && rm -rf ${WRKBUILD}/openjdk-old - -do-build: - cd ${WRKBUILD}; export $(OPENJDK_BUILD_ENV); make - -do-install: - cd ${WRKBUILD}; make install + export ${OPENJDK_NATIVE_ENV} $(MAKE_ENV) ; ./configure \ + ${CONFIGURE_TRIPLE} \ + $(CONFIGURE_BACKEND) \ + --prefix=/usr \ + --bindir=/usr/bin \ + --datadir=/usr/share \ + --mandir=/usr/share/man \ + --libexecdir=/usr/libexec \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --enable-bootstrap \ + --enable-openjdk-cross-compilation \ + --with-openjdk-src-dir=$(WRKDIST)/$(PKG_NAME)-$(PKG_VERSION) \ + --with-xalan2-jar=${WRKDIST}/${XALAN_NAME}_${XALAN_VERSION}/xalan.jar \ + --with-xalan2-serializer-jar=${WRKDIST}/${XALAN_NAME}_${XALAN_VERSION}/serializer.jar \ + --with-xerces2-jar=${WRKDIST}/${XALAN_NAME}_${XALAN_VERSION}/xercesImpl.jar \ + --with-jdk-home=$(BOOTSTRAPJDK) \ + --with-java=$(BOOTSTRAPJDK)/bin/java \ + --with-javac=$(BOOTSTRAPJDK)/bin/javac \ + --with-javah=$(BOOTSTRAPJDK)/bin/javah \ + --with-jar=$(BOOTSTRAPJDK)/bin/jar \ + --with-rmic=$(BOOTSTRAPJDK)/bin/rmic \ + --with-native2ascii=$(BOOTSTRAPJDK)/bin/native2ascii \ + --without-rhino ;\ + $(MAKE) icedtea-ecj + # fixup symlinks to bootstrapjdk + ln -sf $(BOOTSTRAPJDK)/bin/java $(WRKBUILD)/openjdk.build-ecj/j2sdk-image/bin/java + ln -sf $(BOOTSTRAPJDK)/bin/javac $(WRKBUILD)/openjdk.build-ecj/j2sdk-image/bin/javac + ln -sf $(BOOTSTRAPJDK)/bin/javah $(WRKBUILD)/openjdk.build-ecj/j2sdk-image/bin/javah + ln -sf $(BOOTSTRAPJDK)/bin/jar $(WRKBUILD)/openjdk.build-ecj/j2sdk-image/bin/jar openjdk-install: - $(INSTALL_DIR) $(IDIR_OPENJDK)/usr/bin + $(INSTALL_DIR) $(IDIR_OPENJDK)/usr + $(CP) $(WRKBUILD)/openjdk.build/j2re-image/* $(IDIR_OPENJDK)/usr include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/openjdk/patches/debug-javac.patch b/package/openjdk/patches/debug-javac.patch new file mode 100644 index 000000000..f130325ef --- /dev/null +++ b/package/openjdk/patches/debug-javac.patch @@ -0,0 +1,18 @@ +--- w-openjdk-6-1.orig/icedtea6-1.10.orig/javac.in 2011-02-23 23:32:18.635149341 +0100 ++++ w-openjdk-6-1/icedtea6-1.10/javac.in 2011-04-05 16:27:04.291962749 +0200 +@@ -37,6 +37,7 @@ + if ( -e "@abs_top_builddir@/native-ecj" ) + { + my @ecj_args = gen_ecj_opts( \@ARGV ); ++ print 'Using native ecj'; + exec '@abs_top_builddir@/native-ecj', @ecj_parms, @ecj_args ; + } + elsif ( -e "@ECJ_JAR@" ) +@@ -45,6 +46,7 @@ + my @CLASSPATH = ('@ECJ_JAR@'); + push @CLASSPATH, split /:/, $ENV{"CLASSPATH"} if exists $ENV{"CLASSPATH"}; + $ENV{"CLASSPATH"} = join ':', @CLASSPATH; ++ print 'Using ecj with java'; + exec '@JAVA@', 'org.eclipse.jdt.internal.compiler.batch.Main', @ecj_parms, @ecj_args; + } + else diff --git a/package/openjdk/patches/disable-backtrace.patch b/package/openjdk/patches/disable-backtrace.patch new file mode 100644 index 000000000..bd335a914 --- /dev/null +++ b/package/openjdk/patches/disable-backtrace.patch @@ -0,0 +1,11 @@ +--- w-openjdk-6-1.orig/openjdk-6/jdk/src/solaris/native/sun/xawt/XToolkit.c 2011-02-28 17:06:50.000000000 +0100 ++++ w-openjdk-6-1/openjdk-6/jdk/src/solaris/native/sun/xawt/XToolkit.c 2011-04-10 22:33:28.481412674 +0200 +@@ -689,7 +689,7 @@ + return ret; + } + +-#ifdef __linux__ ++#if 0 + void print_stack(void) + { + void *array[10]; diff --git a/package/openjdk/patches/disable-freetype-check.patch b/package/openjdk/patches/disable-freetype-check.patch new file mode 100644 index 000000000..5f5f6cf83 --- /dev/null +++ b/package/openjdk/patches/disable-freetype-check.patch @@ -0,0 +1,11 @@ +--- w-openjdk-6-1.orig/openjdk-6.orig/jdk/make/common/shared/Sanity.gmk 2011-02-28 17:06:10.000000000 +0100 ++++ w-openjdk-6-1/openjdk-6/jdk/make/common/shared/Sanity.gmk 2011-04-05 14:05:29.691807661 +0200 +@@ -793,7 +793,7 @@ + # Check for availability of FreeType (OpenJDK specific) + ###################################################### + +-ifdef OPENJDK ++ifdef OPENJDK_DISABLED + + #name of test program that prints out "Failed" if freetype is not good enough + FREETYPE_VERSION_CHECK_NAME = freetype_versioncheck diff --git a/package/openjdk/patches/patch-icedtea6-1_10_Makefile_in b/package/openjdk/patches/patch-icedtea6-1_10_Makefile_in index 50667a68a..0f49fe67a 100644 --- a/package/openjdk/patches/patch-icedtea6-1_10_Makefile_in +++ b/package/openjdk/patches/patch-icedtea6-1_10_Makefile_in @@ -1,5 +1,32 @@ --- w-openjdk-6-1.orig/icedtea6-1.10/Makefile.in 2011-03-02 20:48:45.000000000 +0100 +++ w-openjdk-6-1/icedtea6-1.10/Makefile.in 2011-04-02 23:33:17.000000000 +0200 +@@ -328,7 +328,7 @@ + am__untar = @am__untar@ + bindir = @bindir@ + build = @build@ +-build_alias = @build_alias@ ++build_alias = ${BUILD_ALIAS} + build_cpu = @build_cpu@ + build_os = @build_os@ + build_vendor = @build_vendor@ +@@ -339,7 +339,7 @@ + dvidir = @dvidir@ + exec_prefix = @exec_prefix@ + host = @host@ +-host_alias = @host_alias@ ++host_alias = ${HOST_ALIAS} + host_cpu = @host_cpu@ + host_os = @host_os@ + host_vendor = @host_vendor@ +@@ -362,7 +362,7 @@ + sharedstatedir = @sharedstatedir@ + srcdir = @srcdir@ + sysconfdir = @sysconfdir@ +-target_alias = @target_alias@ ++target_alias = ${TARGET_ALIAS} + top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ @@ -1329,7 +1329,7 @@ stamps/extract-openjdk.stamp: stamps/dow @OPENJDK_SRC_DIR_FOUND_TRUE@ cp -pPR $(OPENJDK_SRC_DIR_LINK) $(OPENJDK_SRC_DIR) openjdk ; \ @OPENJDK_SRC_DIR_FOUND_TRUE@ fi diff --git a/package/openjdk/patches/remove-libnsl.patch b/package/openjdk/patches/remove-libnsl.patch new file mode 100644 index 000000000..9c086843e --- /dev/null +++ b/package/openjdk/patches/remove-libnsl.patch @@ -0,0 +1,69 @@ +--- w-openjdk-6-1.orig/openjdk-6/jdk/make/java/hpi/hpi_common.gmk 2011-02-28 17:06:10.000000000 +0100 ++++ w-openjdk-6-1/openjdk-6/jdk/make/java/hpi/hpi_common.gmk 2011-04-10 20:05:01.417672476 +0200 +@@ -86,5 +86,5 @@ + # Things that must be linked in. + # + ifneq ($(PLATFORM), windows) +-OTHER_LDLIBS += $(LIBSOCKET) -lnsl $(LIBM) -ldl ++OTHER_LDLIBS += $(LIBSOCKET) $(LIBM) -ldl + endif +--- w-openjdk-6-1.orig/openjdk-6/jdk/make/java/java/Makefile 2011-02-28 17:06:10.000000000 +0100 ++++ w-openjdk-6-1/openjdk-6/jdk/make/java/java/Makefile 2011-04-10 20:05:20.637673621 +0200 +@@ -205,7 +205,7 @@ + OTHER_LDLIBS += $(JVMLIB) -libpath:$(OBJDIR)/../../../fdlibm/$(OBJDIRNAME) fdlibm.lib \ + -libpath:$(OBJDIR)/../../../verify/$(OBJDIRNAME) verify.lib + else +-OTHER_LDLIBS += $(JVMLIB) -lverify $(LIBSOCKET) -lnsl -ldl \ ++OTHER_LDLIBS += $(JVMLIB) -lverify $(LIBSOCKET) -ldl \ + -L$(OBJDIR)/../../../fdlibm/$(OBJDIRNAME) -lfdlibm.$(ARCH) + endif + +--- w-openjdk-6-1.orig/openjdk-6/jdk/make/java/net/Makefile 2011-02-28 17:06:10.000000000 +0100 ++++ w-openjdk-6-1/openjdk-6/jdk/make/java/net/Makefile 2011-04-10 20:05:39.537672169 +0200 +@@ -97,7 +97,7 @@ + # Will not compile at warning level 3 if warnings are fatal + COMPILER_WARNINGS_FATAL=false + else +- OTHER_LDLIBS = $(LIBSOCKET) -lnsl -ldl $(JVMLIB) ++ OTHER_LDLIBS = $(LIBSOCKET) -ldl $(JVMLIB) + endif + ifeq ($(PLATFORM), linux) + OTHER_LDLIBS += -lpthread +--- w-openjdk-6-1.orig/openjdk-6/jdk/make/jpda/transport/socket/Makefile 2011-02-28 17:06:11.000000000 +0100 ++++ w-openjdk-6-1/openjdk-6/jdk/make/jpda/transport/socket/Makefile 2011-04-10 20:06:06.037672449 +0200 +@@ -42,11 +42,11 @@ + endif + + ifeq ($(PLATFORM), linux) +- OTHER_LDLIBS += -lnsl $(LIBSOCKET) -lpthread ++ OTHER_LDLIBS += $(LIBSOCKET) -lpthread + endif + + ifeq ($(PLATFORM), solaris) +- OTHER_LDLIBS += -lnsl $(LIBSOCKET) ++ OTHER_LDLIBS += $(LIBSOCKET) + endif + + ifeq ($(PLATFORM), windows) +--- w-openjdk-6-1.orig/openjdk-6/jdk/make/java/java_hprof_demo/Makefile 2011-02-28 17:06:10.000000000 +0100 ++++ w-openjdk-6-1/openjdk-6/jdk/make/java/java_hprof_demo/Makefile 2011-04-10 20:28:43.287672398 +0200 +@@ -83,7 +83,7 @@ + ifeq ($(PLATFORM), windows) + OTHER_LDLIBS += wsock32.lib winmm.lib + else +- OTHER_LDLIBS += $(LIBSOCKET) -lnsl -ldl ++ OTHER_LDLIBS += $(LIBSOCKET) -ldl + endif + + # +--- w-openjdk-6-1.orig/openjdk-6/jdk/make/mkdemo/jvmti/hprof/Makefile 2011-02-28 17:06:11.000000000 +0100 ++++ w-openjdk-6-1/openjdk-6/jdk/make/mkdemo/jvmti/hprof/Makefile 2011-04-11 10:23:11.538911604 +0200 +@@ -42,7 +42,7 @@ + OTHER_LDLIBS += $(LIBSOCKET) -lnsl -ldl + endif + ifeq ($(PLATFORM), linux) +- OTHER_LDLIBS += $(LIBSOCKET) -lnsl -ldl -lpthread ++ OTHER_LDLIBS += $(LIBSOCKET) -ldl -lpthread + endif + + # diff --git a/package/xset/Makefile b/package/xset/Makefile index fcba46b58..f82bd95ed 100644 --- a/package/xset/Makefile +++ b/package/xset/Makefile @@ -9,6 +9,7 @@ PKG_RELEASE:= 1 PKG_MD5SUM:= 9d8da492fc8f050c5de711d592d3c797 PKG_DESCR:= X set utility PKG_SECTION:= x11/apps +PKG_BUILDDEP:= libXmu PKG_URL:= http://xorg.freedesktop.org/ PKG_SITES:= ${MASTER_SITE_XORG} diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile index 20f2929b5..7313c4d70 100644 --- a/toolchain/gcc/Makefile +++ b/toolchain/gcc/Makefile @@ -95,68 +95,57 @@ $(GCC_BUILD_DIR_MINIMAL)/.configured: ln -sf ${STAGING_TARGET_DIR}/include $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include rm -rf ${STAGING_HOST_DIR}/$(REAL_GNU_TARGET_NAME)/lib ln -sf ${STAGING_TARGET_DIR}/lib $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/lib - (cd $(GCC_BUILD_DIR_MINIMAL); \ - PATH='$(TARGET_PATH)' \ + cd $(GCC_BUILD_DIR_MINIMAL); PATH='$(TARGET_PATH)' \ $(WRKBUILD)/configure \ ${GCC_CONFOPTS} \ --enable-languages=c \ --disable-shared \ --with-newlib \ - --without-headers \ - ); + --without-headers touch $@ $(GCC_BUILD_DIR_MINIMAL)/.compiled: $(GCC_BUILD_DIR_MINIMAL)/.configured - PATH='$(TARGET_PATH)' \ - $(MAKE) ${GCC_MAKEOPTS} -C $(GCC_BUILD_DIR_MINIMAL) all-gcc + PATH='$(TARGET_PATH)' $(MAKE) ${GCC_MAKEOPTS} -C $(GCC_BUILD_DIR_MINIMAL) all-gcc touch $@ $(WRKBUILD)/.headers: $(GCC_BUILD_DIR_MINIMAL)/.compiled - PATH='$(TARGET_PATH)' \ - $(MAKE) -C $(GCC_BUILD_DIR_MINIMAL) install-gcc + PATH='$(TARGET_PATH)' $(MAKE) -C $(GCC_BUILD_DIR_MINIMAL) install-gcc touch $@ $(GCC_BUILD_DIR_INITIAL)/.configured: mkdir -p $(GCC_BUILD_DIR_INITIAL) - (cd $(GCC_BUILD_DIR_INITIAL); \ - PATH='$(TARGET_PATH)' \ + cd $(GCC_BUILD_DIR_INITIAL); PATH='$(TARGET_PATH)' \ $(WRKBUILD)/configure \ ${GCC_CONFOPTS} \ --enable-languages=c \ --disable-shared \ --disable-threads \ --with-newlib \ - --with-sysroot=$(STAGING_TARGET_DIR) \ - ); + --with-sysroot=$(STAGING_TARGET_DIR) touch $@ $(GCC_BUILD_DIR_INITIAL)/.compiled: $(GCC_BUILD_DIR_INITIAL)/.configured - PATH='$(TARGET_PATH)' \ - $(MAKE) ${GCC_MAKEOPTS} -C $(GCC_BUILD_DIR_INITIAL) all-gcc all-target-libgcc + PATH='$(TARGET_PATH)' $(MAKE) ${GCC_MAKEOPTS} -C $(GCC_BUILD_DIR_INITIAL) all-gcc all-target-libgcc touch $@ $(WRKBUILD)/.configured: $(GCC_BUILD_DIR_INITIAL)/.compiled - PATH='$(TARGET_PATH)' \ - $(MAKE) -C $(GCC_BUILD_DIR_INITIAL) install-gcc install-target-libgcc + PATH='$(TARGET_PATH)' $(MAKE) -C $(GCC_BUILD_DIR_INITIAL) install-gcc install-target-libgcc touch $@ $(GCC_BUILD_DIR_FINAL)/.configured: mkdir -p $(GCC_BUILD_DIR_FINAL) - (cd $(GCC_BUILD_DIR_FINAL); \ - PATH='$(TARGET_PATH)' \ + cd $(GCC_BUILD_DIR_FINAL); PATH='$(TARGET_PATH)' \ $(WRKBUILD)/configure \ ${GCC_CONFOPTS} \ --enable-languages=$(LANGUAGES) \ --with-sysroot='$${prefix}/${STAGING_HOST2TARGET}' \ --with-slibdir=$(STAGING_TARGET_DIR)/lib \ - --enable-shared \ - ); + --enable-shared touch $@ $(WRKBUILD)/.compiled: $(GCC_BUILD_DIR_FINAL)/.configured - PATH='$(TARGET_PATH)' \ - $(MAKE) ${GCC_MAKEOPTS} -C $(GCC_BUILD_DIR_FINAL) all + PATH='$(TARGET_PATH)' $(MAKE) ${GCC_MAKEOPTS} -C $(GCC_BUILD_DIR_FINAL) all touch $@ $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled @@ -165,14 +154,15 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled @-rm $(STAGING_TARGET_DIR)/lib/libiberty.a $(STAGING_TARGET_DIR)/usr/lib/libiberty.a # Set up the symlinks to enable lying about target name. set -e; \ - (cd $(STAGING_HOST_DIR); \ + cd $(STAGING_HOST_DIR); \ ln -sf $(REAL_GNU_TARGET_NAME) $(GNU_TARGET_NAME); \ cd bin; \ for app in $(REAL_GNU_TARGET_NAME)-* ; do \ ln -sf $${app} \ $(GNU_TARGET_NAME)$${app##$(REAL_GNU_TARGET_NAME)}; \ - done; \ - ) + done; + # workaround for openjdk + cd $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/bin ; cp * .. touch $@ include ${TOPDIR}/mk/toolchain.mk diff --git a/tools/Makefile b/tools/Makefile index 3a158b839..8bf118641 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -15,11 +15,11 @@ clean: $(TARGETS_CLEAN) %-compile: $(TOOLS_BUILD_DIR) $(TRACE) "tools/$(patsubst %-compile,%,$@)/compile " - $(MAKE) -C $(patsubst %-compile,%,$@) compile + $(MAKE) -C $(patsubst %-compile,%,$@) compile $(MAKE_TRACE) %-install: $(TRACE) "tools/$(patsubst %-install,%,$@)/install " - $(MAKE) -C $(patsubst %-install,%,$@) install + $(MAKE) -C $(patsubst %-install,%,$@) install $(MAKE_TRACE) %-clean: $(TRACE) "tools/$(patsubst %-clean,%,$@)/clean " |