[Libreoffice-commits] core.git: download.lst external/libxmlsec

Miklos Vajna vmiklos at collabora.co.uk
Wed Apr 13 07:58:17 UTC 2016


 download.lst                                             |    2 
 external/libxmlsec/UnpackedTarball_xmlsec.mk             |    1 
 external/libxmlsec/xmlsec1-configure.patch.1             |   24 
 external/libxmlsec/xmlsec1-customkeymanage.patch.1       |   20 
 external/libxmlsec/xmlsec1-mingw-keymgr-mscrypto.patch.1 |   12 
 external/libxmlsec/xmlsec1-ooxml.patch.1                 |  946 ++++++++-------
 external/libxmlsec/xmlsec1-update-config.guess.patch.1   |  672 ----------
 7 files changed, 576 insertions(+), 1101 deletions(-)

New commits:
commit 3dcd271f7e62e6d175cb187dbb2bbd099f5ca28e
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Tue Apr 12 17:37:28 2016 +0200

    Upgrade libxmlsec to 1.2.20
    
    Obsoletes xmlsec1-update-config.guess.patch.1.
    
    Also update xmlsec1-ooxml.patch.1 as it was upstreamed at the end (with
    improved error checks, etc), which wasn't possible before without loads
    of conflicts.
    
    Change-Id: I6fee428f73f8908289d87cc262ad323ec62e65cf
    Reviewed-on: https://gerrit.libreoffice.org/24032
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/download.lst b/download.lst
index 21c95b1..c76e00a 100644
--- a/download.lst
+++ b/download.lst
@@ -92,7 +92,7 @@ export LIBEXTTEXTCAT_TARBALL := 10d61fbaa6a06348823651b1bd7940fe-libexttextcat-3
 export LIBGLTF_MD5SUM := d63a9f47ab048f5009d90693d6aa6424
 export LIBGLTF_TARBALL := libgltf-0.0.2.tar.bz2
 export LIBLANGTAG_TARBALL := aa899eff126216dafe721149fbdb511b-liblangtag-0.5.8.tar.bz2
-export LIBXMLSEC_TARBALL := fe664ba5f01ebfaeb0ab5deeb0b2249e-xmlsec1-1.2.19.tar.gz
+export LIBXMLSEC_TARBALL := ce12af00283eb90d9281956524250d6e-xmlsec1-1.2.20.tar.gz
 export LIBXML_TARBALL := daece17e045f1c107610e137ab50c179-libxml2-2.9.3.tar.gz
 export LIBXSLT_TARBALL := 9667bf6f9310b957254fdcf6596600b7-libxslt-1.1.28.tar.gz
 export LPSOLVE_TARBALL := 26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz
diff --git a/external/libxmlsec/UnpackedTarball_xmlsec.mk b/external/libxmlsec/UnpackedTarball_xmlsec.mk
index 67913b7..81600b9 100644
--- a/external/libxmlsec/UnpackedTarball_xmlsec.mk
+++ b/external/libxmlsec/UnpackedTarball_xmlsec.mk
@@ -17,7 +17,6 @@ xmlsec_patches += xmlsec1-mingw-keymgr-mscrypto.patch.1
 xmlsec_patches += xmlsec1-vc.patch.1
 xmlsec_patches += xmlsec1-1.2.14_fix_extern_c.patch.1
 xmlsec_patches += xmlsec1-customkeymanage.patch.1
-xmlsec_patches += xmlsec1-update-config.guess.patch.1
 # Upstreamed as <https://github.com/lsh123/xmlsec/commit/7069e2b0ab49679008abedd6d223fb95538b0684>.
 xmlsec_patches += xmlsec1-ooxml.patch.1
 
diff --git a/external/libxmlsec/xmlsec1-configure.patch.1 b/external/libxmlsec/xmlsec1-configure.patch.1
index 323177f..91ffb9a 100644
--- a/external/libxmlsec/xmlsec1-configure.patch.1
+++ b/external/libxmlsec/xmlsec1-configure.patch.1
@@ -29,10 +29,10 @@ index 669f996..0cf0798 100644
  
  bin_SCRIPTS 	= xmlsec1-config
 diff --git a/Makefile.in b/Makefile.in
-index 25e6087..f9aa108 100644
+index 9b252ff..c42b984 100644
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -372,8 +372,9 @@ top_builddir = @top_builddir@
+@@ -452,8 +452,9 @@ top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
  NULL = 
  SAFE_VERSION = @XMLSEC_VERSION_SAFE@
@@ -45,10 +45,10 @@ index 25e6087..f9aa108 100644
  bin_SCRIPTS = xmlsec1-config
  pkgconfig_DATA = xmlsec1.pc @XMLSEC_CRYPTO_PC_FILES_LIST@
 diff --git a/configure.in b/configure.in
-index 1b46a92..92c4cc2 100644
+index 7690e7a..f2c98e3 100644
 --- a/configure.in
 +++ b/configure.in
-@@ -185,8 +185,8 @@ dnl find libxml
+@@ -188,8 +188,8 @@ dnl find libxml
  dnl ==========================================================================
  LIBXML_MIN_VERSION="2.7.4"
  LIBXML_CONFIG="xml2-config"
@@ -59,7 +59,7 @@ index 1b46a92..92c4cc2 100644
  LIBXML_FOUND="no"
  AC_ARG_WITH(libxml, 
      [  --with-libxml=[PFX]       libxml2 location]
-@@ -195,6 +195,8 @@ AC_ARG_WITH(libxml-src,
+@@ -198,6 +198,8 @@ AC_ARG_WITH(libxml-src,
      [  --with-libxml-src=[PFX]   not installed yet libxml2 location]
  )
  
@@ -68,7 +68,7 @@ index 1b46a92..92c4cc2 100644
  if test "z$with_libxml" = "zno" -o "z$with_libxml_src" = "zno"; then 
      AC_MSG_CHECKING(for libxml2 libraries >= $LIBXML_MIN_VERSION) 
      AC_MSG_ERROR(libxml2 >= $LIBXML_MIN_VERSION is required for $XMLSEC_PACKAGE)
-@@ -243,6 +245,8 @@ if test "z$LIBXML_FOUND" = "zno" ; then
+@@ -246,6 +248,8 @@ if test "z$LIBXML_FOUND" = "zno" ; then
      fi
  fi
  
@@ -77,7 +77,7 @@ index 1b46a92..92c4cc2 100644
  AC_SUBST(LIBXML_CFLAGS)
  AC_SUBST(LIBXML_LIBS)
  AC_SUBST(LIBXML_CONFIG)
-@@ -551,12 +555,26 @@ dnl ==========================================================================
+@@ -570,12 +574,26 @@ dnl ==========================================================================
  XMLSEC_NO_NSS="1"
  SEAMONKEY_MIN_VERSION="1.0"
  MOZILLA_MIN_VERSION="1.4"
@@ -106,7 +106,7 @@ index 1b46a92..92c4cc2 100644
  NSS_CRYPTO_LIB="$XMLSEC_PACKAGE-nss"
  NSS_FOUND="no"
  NSPR_PACKAGE=mozilla-nspr
-@@ -583,6 +601,16 @@ elif test "z$with_nss" = "z" -a "z$with_nspr" = "z" -a "z$with_mozilla_ver" = "z
+@@ -602,6 +620,16 @@ elif test "z$with_nss" = "z" -a "z$with_nspr" = "z" -a "z$with_mozilla_ver" = "z
      dnl We are going to try all options
      dnl
      if test "z$NSS_FOUND" = "zno" ; then
@@ -123,7 +123,7 @@ index 1b46a92..92c4cc2 100644
          PKG_CHECK_MODULES(NSS, seamonkey-nspr >= $NSPR_MIN_VERSION seamonkey-nss >= $SEAMONKEY_MIN_VERSION,
      	    [NSS_FOUND=yes NSPR_PACKAGE=seamonkey-nspr NSS_PACKAGE=seamonkey-nss],
  	    [NSS_FOUND=no])
-@@ -614,8 +642,8 @@ if test "z$NSS_FOUND" = "zno" ; then
+@@ -633,8 +661,8 @@ if test "z$NSS_FOUND" = "zno" ; then
          ac_mozilla_name=mozilla-$MOZILLA_MIN_VERSION
      fi
  
@@ -134,7 +134,7 @@ index 1b46a92..92c4cc2 100644
  
      AC_MSG_CHECKING(for nspr libraries >= $NSPR_MIN_VERSION)
      NSPR_INCLUDES_FOUND="no"
-@@ -636,21 +664,21 @@ if test "z$NSS_FOUND" = "zno" ; then
+@@ -655,21 +683,21 @@ if test "z$NSS_FOUND" = "zno" ; then
  	NSPR_PRINIT_H="$with_nspr/include/prinit.h"
      else
  	for dir in $ac_nss_inc_dir ; do
@@ -160,7 +160,7 @@ index 1b46a92..92c4cc2 100644
  		dnl do not add -L/usr/lib because compiler does it anyway
          	if test "z$dir" = "z/usr/lib" ; then
              	    NSPR_LIBS="$NSPR_LIBS_LIST"
-@@ -721,7 +749,7 @@ if test "z$NSS_FOUND" = "zno" ; then
+@@ -740,7 +768,7 @@ if test "z$NSS_FOUND" = "zno" ; then
          done
         
          for dir in $ac_nss_lib_dir ; do
@@ -169,7 +169,7 @@ index 1b46a92..92c4cc2 100644
          	dnl do not add -L/usr/lib because compiler does it anyway
      		if test "z$dir" = "z/usr/lib" ; then
          	    NSS_LIBS="$NSS_LIBS_LIST"
-@@ -740,7 +768,7 @@ if test "z$NSS_FOUND" = "zno" ; then
+@@ -759,7 +787,7 @@ if test "z$NSS_FOUND" = "zno" ; then
  
      if test "z$NSS_INCLUDES_FOUND" = "zyes" -a "z$NSS_LIBS_FOUND" = "zyes" ; then
         OLD_CPPFLAGS=$CPPFLAGS
diff --git a/external/libxmlsec/xmlsec1-customkeymanage.patch.1 b/external/libxmlsec/xmlsec1-customkeymanage.patch.1
index 5378084..852d513 100644
--- a/external/libxmlsec/xmlsec1-customkeymanage.patch.1
+++ b/external/libxmlsec/xmlsec1-customkeymanage.patch.1
@@ -57,10 +57,10 @@ index 18dff94..44837b6 100644
  certkeys.h \
  crypto.h \
 diff --git a/include/xmlsec/mscrypto/Makefile.in b/include/xmlsec/mscrypto/Makefile.in
-index 235bc0c..d57481b 100644
+index 411681d..3ed3f5b 100644
 --- a/include/xmlsec/mscrypto/Makefile.in
 +++ b/include/xmlsec/mscrypto/Makefile.in
-@@ -307,6 +307,7 @@ top_srcdir = @top_srcdir@
+@@ -379,6 +379,7 @@ top_srcdir = @top_srcdir@
  NULL = 
  xmlsecmscryptoincdir = $(includedir)/xmlsec1/xmlsec/mscrypto
  xmlsecmscryptoinc_HEADERS = \
@@ -160,10 +160,10 @@ index e352162..997ca7f 100644
  
  install-exec-hook:
 diff --git a/include/xmlsec/nss/Makefile.in b/include/xmlsec/nss/Makefile.in
-index 8f7952d..a344a55 100644
+index 92f2d19..c190177 100644
 --- a/include/xmlsec/nss/Makefile.in
 +++ b/include/xmlsec/nss/Makefile.in
-@@ -314,6 +314,9 @@ bignum.h \
+@@ -386,6 +386,9 @@ bignum.h \
  keysstore.h \
  pkikeys.h \
  x509.h \
@@ -765,10 +765,10 @@ index 8cd8586..a14199e 100644
  
  if SHAREDLIB_HACK
 diff --git a/src/nss/Makefile.in b/src/nss/Makefile.in
-index e799b8e..d9c4a27 100644
+index e43ac73..5622923 100644
 --- a/src/nss/Makefile.in
 +++ b/src/nss/Makefile.in
-@@ -81,7 +81,8 @@ am__DEPENDENCIES_1 =
+@@ -126,7 +126,8 @@ am__DEPENDENCIES_1 =
  am__libxmlsec1_nss_la_SOURCES_DIST = app.c bignum.c ciphers.c crypto.c \
  	digests.c hmac.c pkikeys.c signatures.c symkeys.c x509.c \
  	x509vfy.c keysstore.c keytrans.c kw_des.c kw_aes.c globals.h \
@@ -778,7 +778,7 @@ index e799b8e..d9c4a27 100644
  am__objects_1 =
  @SHAREDLIB_HACK_TRUE at am__objects_2 = libxmlsec1_nss_la-strings.lo
  am_libxmlsec1_nss_la_OBJECTS = libxmlsec1_nss_la-app.lo \
-@@ -92,6 +93,8 @@ am_libxmlsec1_nss_la_OBJECTS = libxmlsec1_nss_la-app.lo \
+@@ -137,6 +138,8 @@ am_libxmlsec1_nss_la_OBJECTS = libxmlsec1_nss_la-app.lo \
  	libxmlsec1_nss_la-x509.lo libxmlsec1_nss_la-x509vfy.lo \
  	libxmlsec1_nss_la-keysstore.lo libxmlsec1_nss_la-keytrans.lo \
  	libxmlsec1_nss_la-kw_des.lo libxmlsec1_nss_la-kw_aes.lo \
@@ -787,7 +787,7 @@ index e799b8e..d9c4a27 100644
  	$(am__objects_1) $(am__objects_2)
  libxmlsec1_nss_la_OBJECTS = $(am_libxmlsec1_nss_la_OBJECTS)
  AM_V_lt = $(am__v_lt_ at AM_V@)
-@@ -370,6 +373,7 @@ libxmlsec1_nss_la_CPPFLAGS = \
+@@ -446,6 +449,7 @@ libxmlsec1_nss_la_CPPFLAGS = \
  libxmlsec1_nss_la_SOURCES = app.c bignum.c ciphers.c crypto.c \
  	digests.c hmac.c pkikeys.c signatures.c symkeys.c x509.c \
  	x509vfy.c keysstore.c keytrans.c kw_des.c kw_aes.c globals.h \
@@ -795,7 +795,7 @@ index e799b8e..d9c4a27 100644
  	$(NULL) $(am__append_1)
  libxmlsec1_nss_la_LIBADD = \
  	$(NSS_LIBS) \
-@@ -476,6 +480,8 @@ distclean-compile:
+@@ -557,6 +561,8 @@ distclean-compile:
  @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_nss_la-symkeys.Plo at am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_nss_la-x509.Plo at am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_nss_la-x509vfy.Plo at am__quote@
@@ -804,7 +804,7 @@ index e799b8e..d9c4a27 100644
  
  .c.o:
  @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@@ -505,6 +511,20 @@ libxmlsec1_nss_la-app.lo: app.c
+@@ -586,6 +592,20 @@ libxmlsec1_nss_la-app.lo: app.c
  @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
  @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_nss_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_nss_la-app.lo `test -f 'app.c' || echo '$(srcdir)/'`app.c
  
diff --git a/external/libxmlsec/xmlsec1-mingw-keymgr-mscrypto.patch.1 b/external/libxmlsec/xmlsec1-mingw-keymgr-mscrypto.patch.1
index 6added33..c570fc8 100644
--- a/external/libxmlsec/xmlsec1-mingw-keymgr-mscrypto.patch.1
+++ b/external/libxmlsec/xmlsec1-mingw-keymgr-mscrypto.patch.1
@@ -23,10 +23,10 @@ index 5cea654..3dc6452 100644
  
  if SHAREDLIB_HACK
 diff --git a/src/mscrypto/Makefile.in b/src/mscrypto/Makefile.in
-index 83c8f03..866e996 100644
+index 2697d86..56c28ef 100644
 --- a/src/mscrypto/Makefile.in
 +++ b/src/mscrypto/Makefile.in
-@@ -81,7 +81,8 @@ am__DEPENDENCIES_1 =
+@@ -126,7 +126,8 @@ am__DEPENDENCIES_1 =
  am__libxmlsec1_mscrypto_la_SOURCES_DIST = globals.h private.h app.c \
  	certkeys.c ciphers.c crypto.c digests.c hmac.c keysstore.c \
  	kw_aes.c kw_des.c kt_rsa.c signatures.c symkeys.c x509.c \
@@ -36,7 +36,7 @@ index 83c8f03..866e996 100644
  am__objects_1 =
  @SHAREDLIB_HACK_TRUE at am__objects_2 =  \
  @SHAREDLIB_HACK_TRUE@	libxmlsec1_mscrypto_la-strings.lo
-@@ -98,7 +99,8 @@ am_libxmlsec1_mscrypto_la_OBJECTS = libxmlsec1_mscrypto_la-app.lo \
+@@ -143,7 +144,8 @@ am_libxmlsec1_mscrypto_la_OBJECTS = libxmlsec1_mscrypto_la-app.lo \
  	libxmlsec1_mscrypto_la-signatures.lo \
  	libxmlsec1_mscrypto_la-symkeys.lo \
  	libxmlsec1_mscrypto_la-x509.lo \
@@ -46,7 +46,7 @@ index 83c8f03..866e996 100644
  	$(am__objects_2)
  libxmlsec1_mscrypto_la_OBJECTS = $(am_libxmlsec1_mscrypto_la_OBJECTS)
  AM_V_lt = $(am__v_lt_ at AM_V@)
-@@ -378,6 +380,7 @@ libxmlsec1_mscrypto_la_CPPFLAGS = \
+@@ -454,6 +456,7 @@ libxmlsec1_mscrypto_la_CPPFLAGS = \
  libxmlsec1_mscrypto_la_SOURCES = globals.h private.h app.c certkeys.c \
  	ciphers.c crypto.c digests.c hmac.c keysstore.c kw_aes.c \
  	kw_des.c kt_rsa.c signatures.c symkeys.c x509.c x509vfy.c \
@@ -54,7 +54,7 @@ index 83c8f03..866e996 100644
  	csp_calg.h csp_oid.h xmlsec-mingw.h $(NULL) $(am__append_1)
  libxmlsec1_mscrypto_la_LIBADD = \
  	$(MSCRYPTO_LIBS) \
-@@ -484,6 +487,7 @@ distclean-compile:
+@@ -565,6 +568,7 @@ distclean-compile:
  @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_mscrypto_la-symkeys.Plo at am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_mscrypto_la-x509.Plo at am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_mscrypto_la-x509vfy.Plo at am__quote@
@@ -62,7 +62,7 @@ index 83c8f03..866e996 100644
  
  .c.o:
  @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@@ -513,6 +517,13 @@ libxmlsec1_mscrypto_la-app.lo: app.c
+@@ -594,6 +598,13 @@ libxmlsec1_mscrypto_la-app.lo: app.c
  @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
  @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_mscrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_mscrypto_la-app.lo `test -f 'app.c' || echo '$(srcdir)/'`app.c
  
diff --git a/external/libxmlsec/xmlsec1-ooxml.patch.1 b/external/libxmlsec/xmlsec1-ooxml.patch.1
index bc7123c..81d250f 100644
--- a/external/libxmlsec/xmlsec1-ooxml.patch.1
+++ b/external/libxmlsec/xmlsec1-ooxml.patch.1
@@ -1,85 +1,106 @@
-From 114dad4467a2834d11ba463251cf766928dbb757 Mon Sep 17 00:00:00 2001
+From c0a2ea2b84e6dc954125ea6f2f57e9ddc29a3d5a Mon Sep 17 00:00:00 2001
 From: Miklos Vajna <vmiklos at collabora.co.uk>
-Date: Mon, 25 Jan 2016 09:50:03 +0100
-Subject: [PATCH] OOXML Relationship Transform
+Date: Sun, 14 Feb 2016 22:12:57 +0100
+Subject: [PATCH] Implement OOXML Relationships Transform Algorithm
 
-Conflicts:
-	include/xmlsec/transforms.h
+Reference: ISO/IEC 29500-2:2012(E), section 13.2.4.24
 ---
- include/xmlsec/strings.h    |   3 +
- include/xmlsec/transforms.h |   4 +
- src/strings.c               |   3 +
- src/transforms.c            |  11 +
- src/xpath.c                 | 542 ++++++++++++++++++++++++++++++++++++++++++++
- 5 files changed, 563 insertions(+)
+ include/xmlsec/strings.h    |  12 +
+ include/xmlsec/transforms.h |   9 +
+ src/strings.c               |  12 +
+ src/transforms.c            |  10 +
+ src/xpath.c                 | 671 ++++++++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 714 insertions(+)
 
 diff --git a/include/xmlsec/strings.h b/include/xmlsec/strings.h
-index 5e3f6a1..b386fc4 100644
+index 5e3f6a1..5a92014 100644
 --- a/include/xmlsec/strings.h
 +++ b/include/xmlsec/strings.h
-@@ -588,6 +588,9 @@ XMLSEC_EXPORT_VAR const xmlChar xmlSecXPath2FilterUnion[];
- XMLSEC_EXPORT_VAR const xmlChar xmlSecNameXPointer[];
- XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeXPointer[];
+@@ -590,6 +590,18 @@ XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeXPointer[];
  
+ /*************************************************************************
+  *
++ * RelationshipTransform strings
++ *
++ ************************************************************************/
 +XMLSEC_EXPORT_VAR const xmlChar xmlSecNameRelationship[];
 +XMLSEC_EXPORT_VAR const xmlChar xmlSecHrefRelationship[];
++XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeRelationship[];
++XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeRelationshipReference[];
++XMLSEC_EXPORT_VAR const xmlChar xmlSecRelationshipsNs[];
++XMLSEC_EXPORT_VAR const xmlChar xmlSecRelationshipReferenceNs[];
 +
- /*************************************************************************
-  *
++/*************************************************************************
++ *
   * Xslt strings
+  *
+  ************************************************************************/
 diff --git a/include/xmlsec/transforms.h b/include/xmlsec/transforms.h
-index f0c70c9..5bdb1b9 100644
+index f0c70c9..0d876f1 100644
 --- a/include/xmlsec/transforms.h
 +++ b/include/xmlsec/transforms.h
-@@ -949,6 +949,10 @@ XMLSEC_EXPORT int               xmlSecTransformXPointerSetExpr          (xmlSecT
+@@ -949,6 +949,15 @@ XMLSEC_EXPORT int               xmlSecTransformXPointerSetExpr          (xmlSecT
                                                                           const xmlChar* expr,
                                                                           xmlSecNodeSetType nodeSetType,
                                                                           xmlNodePtr hereNode);
-+
-+#define xmlSecTransformRelationshipId xmlSecTransformRelationshipGetKlass()
-+XMLSEC_EXPORT xmlSecTransformId xmlSecTransformRelationshipGetKlass (void);
++/**
++ * xmlSecTransformRelationshipId:
++ *
++ * The Relationship transform klass.
++ */
++#define xmlSecTransformRelationshipId \
++        xmlSecTransformRelationshipGetKlass()
++XMLSEC_EXPORT xmlSecTransformId xmlSecTransformRelationshipGetKlass     (void);
 +
  #ifndef XMLSEC_NO_XSLT
  #include <libxslt/security.h>
  
 diff --git a/src/strings.c b/src/strings.c
-index f746f4d..048b0a6 100644
+index f746f4d..1e8516f 100644
 --- a/src/strings.c
 +++ b/src/strings.c
-@@ -579,6 +579,9 @@ const xmlChar xmlSecXPath2FilterUnion[]         = "union";
- const xmlChar xmlSecNameXPointer[]              = "xpointer";
- const xmlChar xmlSecNodeXPointer[]              = "XPointer";
+@@ -581,6 +581,18 @@ const xmlChar xmlSecNodeXPointer[]              = "XPointer";
  
-+const xmlChar xmlSecNameRelationship[] = "relationship";
-+const xmlChar xmlSecHrefRelationship[] = "http://schemas.openxmlformats.org/package/2006/RelationshipTransform";
-+
  /*************************************************************************
   *
++ * Relationship strings
++ *
++ ************************************************************************/
++const xmlChar xmlSecNameRelationship[]          = "relationship";
++const xmlChar xmlSecHrefRelationship[]          = "http://schemas.openxmlformats.org/package/2006/RelationshipTransform";
++const xmlChar xmlSecNodeRelationship[]          = "Relationship";
++const xmlChar xmlSecNodeRelationshipReference[] = "RelationshipReference";
++const xmlChar xmlSecRelationshipsNs[]           = "http://schemas.openxmlformats.org/package/2006/relationships";
++const xmlChar xmlSecRelationshipReferenceNs[]   = "http://schemas.openxmlformats.org/package/2006/digital-signature";
++
++/*************************************************************************
++ *
   * Xslt strings
+  *
+  ************************************************************************/
 diff --git a/src/transforms.c b/src/transforms.c
-index 8a2ded2..0371b82 100644
+index 8a2ded2..8a32629 100644
 --- a/src/transforms.c
 +++ b/src/transforms.c
-@@ -281,6 +281,17 @@ xmlSecTransformIdsRegisterDefault(void) {
+@@ -281,6 +281,16 @@ xmlSecTransformIdsRegisterDefault(void) {
          return(-1);
      }
  
-+    if (xmlSecTransformIdsRegister(xmlSecTransformRelationshipId) < 0)
-+    {
-+	xmlSecError(XMLSEC_ERRORS_HERE,
-+		    NULL,
-+		    "xmlSecTransformIdsRegister",
-+		    XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+		    "name=%s",
-+		    xmlSecErrorsSafeString(xmlSecTransformKlassGetName(xmlSecTransformRelationshipId)));
-+	return -1;
++    if(xmlSecTransformIdsRegister(xmlSecTransformRelationshipId) < 0) {
++        xmlSecError(XMLSEC_ERRORS_HERE,
++                    NULL,
++                    "xmlSecTransformIdsRegister",
++                    XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                    "name=%s",
++                    xmlSecErrorsSafeString(xmlSecTransformKlassGetName(xmlSecTransformRelationshipId)));
++        return(-1);
 +    }
 +
  #ifndef XMLSEC_NO_XSLT
      if(xmlSecTransformIdsRegister(xmlSecTransformXsltId) < 0) {
          xmlSecError(XMLSEC_ERRORS_HERE,
 diff --git a/src/xpath.c b/src/xpath.c
-index e67631e..0fef1fe 100644
+index e67631e..748c9da 100644
 --- a/src/xpath.c
 +++ b/src/xpath.c
 @@ -17,6 +17,7 @@
@@ -90,57 +111,73 @@ index e67631e..0fef1fe 100644
  
  #include <xmlsec/xmlsec.h>
  #include <xmlsec/xmltree.h>
-@@ -1161,5 +1162,546 @@ xmlSecTransformVisa3DHackExecute(xmlSecTransformPtr transform, int last,
-     return(0);
- }
+@@ -1163,3 +1164,673 @@ xmlSecTransformVisa3DHackExecute(xmlSecTransformPtr transform, int last,
  
-+/* OOXML Relationship Transform. */
-+typedef struct _xmlSecRelationshipCtx xmlSecRelationshipCtx, *xmlSecRelationshipCtxPtr;
-+struct _xmlSecRelationshipCtx
-+{
-+    xmlSecPtrListPtr sourceIdList;
+ 
+ 
++/******************************************************************************
++ *
++ * Relationship transform
++ *
++ *****************************************************************************/
++typedef struct _xmlSecRelationshipCtx           xmlSecRelationshipCtx,
++                                                *xmlSecRelationshipCtxPtr;
++struct _xmlSecRelationshipCtx {
++    xmlSecPtrListPtr                    sourceIdList;
 +};
-+#define xmlSecRelationshipSize (sizeof(xmlSecTransform) + sizeof(xmlSecRelationshipCtx))
-+#define xmlSecRelationshipGetCtx(transform) ((xmlSecRelationshipCtxPtr)(((xmlSecByte*)(transform)) + sizeof(xmlSecTransform)))
-+
-+static int xmlSecRelationshipInitialize (xmlSecTransformPtr transform);
-+static void xmlSecRelationshipFinalize (xmlSecTransformPtr transform);
-+static int xmlSecTransformRelationshipPopBin(xmlSecTransformPtr transform, xmlSecByte* data, xmlSecSize maxDataSize, xmlSecSize* dataSize, xmlSecTransformCtxPtr transformCtx);
-+static int xmlSecTransformRelationshipPushXml(xmlSecTransformPtr transform, xmlSecNodeSetPtr nodes, xmlSecTransformCtxPtr transformCtx);
-+static int xmlSecRelationshipReadNode(xmlSecTransformPtr transform, xmlNodePtr node, xmlSecTransformCtxPtr transformCtx);
-+
-+static xmlSecTransformKlass xmlSecRelationshipKlass =
-+{
++#define xmlSecRelationshipSize        \
++    (sizeof(xmlSecTransform) + sizeof(xmlSecRelationshipCtx))
++#define xmlSecRelationshipGetCtx(transform)        \
++    ((xmlSecRelationshipCtxPtr)(((xmlSecByte*)(transform)) + sizeof(xmlSecTransform)))
++
++static int              xmlSecRelationshipInitialize      (xmlSecTransformPtr transform);
++static void             xmlSecRelationshipFinalize        (xmlSecTransformPtr transform);
++static int              xmlSecTransformRelationshipPopBin (xmlSecTransformPtr transform,
++                                                           xmlSecByte* data,
++                                                           xmlSecSize maxDataSize,
++                                                           xmlSecSize* dataSize,
++                                                           xmlSecTransformCtxPtr transformCtx);
++static int              xmlSecTransformRelationshipPushXml(xmlSecTransformPtr transform,
++                                                           xmlSecNodeSetPtr nodes,
++                                                           xmlSecTransformCtxPtr transformCtx);
++static int              xmlSecRelationshipReadNode        (xmlSecTransformPtr transform,
++                                                           xmlNodePtr node,
++                                                           xmlSecTransformCtxPtr transformCtx);
++
++static xmlSecTransformKlass xmlSecRelationshipKlass = {
 +    /* klass/object sizes */
-+    sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
-+    xmlSecRelationshipSize, /* xmlSecSize objSize */
-+    xmlSecNameRelationship, /* const xmlChar* name; */
-+    xmlSecHrefRelationship, /* const xmlChar* href; */
-+    xmlSecTransformUsageDSigTransform, /* xmlSecAlgorithmUsage usage; */
-+    xmlSecRelationshipInitialize, /* xmlSecTransformInitializeMethod initialize; */
-+    xmlSecRelationshipFinalize, /* xmlSecTransformFinalizeMethod finalize; */
-+    xmlSecRelationshipReadNode, /* xmlSecTransformNodeReadMethod readNode; */
-+    NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
-+    NULL, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
-+    NULL, /* xmlSecTransformSetKeyMethod setKey; */
-+    NULL, /* xmlSecTransformValidateMethod validate; */
-+    xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
-+    NULL, /* xmlSecTransformPushBinMethod pushBin; */
-+    xmlSecTransformRelationshipPopBin, /* xmlSecTransformPopBinMethod popBin; */
-+    xmlSecTransformRelationshipPushXml, /* xmlSecTransformPushXmlMethod pushXml; */
-+    NULL, /* xmlSecTransformPopXmlMethod popXml; */
-+    NULL, /* xmlSecTransformExecuteMethod execute; */
-+    NULL, /* void* reserved0; */
-+    NULL, /* void* reserved1; */
++    sizeof(xmlSecTransformKlass),               /* xmlSecSize klassSize */
++    xmlSecRelationshipSize,                     /* xmlSecSize objSize */
++
++    xmlSecNameRelationship,                     /* const xmlChar* name; */
++    xmlSecHrefRelationship,                     /* const xmlChar* href; */
++    xmlSecTransformUsageDSigTransform,          /* xmlSecTransformUsage usage; */
++
++    xmlSecRelationshipInitialize,               /* xmlSecTransformInitializeMethod initialize; */
++    xmlSecRelationshipFinalize,                 /* xmlSecTransformFinalizeMethod finalize; */
++    xmlSecRelationshipReadNode,                 /* xmlSecTransformNodeReadMethod readNode; */
++    NULL,                                       /* xmlSecTransformNodeWriteMethod writeNode; */
++    NULL,                                       /* xmlSecTransformSetKeyReqMethod setKeyReq; */
++    NULL,                                       /* xmlSecTransformSetKeyMethod setKey; */
++    NULL,                                       /* xmlSecTransformValidateMethod validate; */
++    xmlSecTransformDefaultGetDataType,          /* xmlSecTransformGetDataTypeMethod getDataType; */
++    NULL,                                       /* xmlSecTransformPushBinMethod pushBin; */
++    xmlSecTransformRelationshipPopBin,          /* xmlSecTransformPopBinMethod popBin; */
++    xmlSecTransformRelationshipPushXml,         /* xmlSecTransformPushXmlMethod pushXml; */
++    NULL,                                       /* xmlSecTransformPopXmlMethod popXml; */
++    NULL,                                       /* xmlSecTransformExecuteMethod execute; */
++
++    NULL,                                       /* void* reserved0; */
++    NULL,                                       /* void* reserved1; */
 +};
 +
-+xmlSecTransformId xmlSecTransformRelationshipGetKlass(void)
-+{
-+    return &xmlSecRelationshipKlass;
++xmlSecTransformId
++xmlSecTransformRelationshipGetKlass(void) {
++    return(&xmlSecRelationshipKlass);
 +}
 +
-+static int xmlSecRelationshipInitialize(xmlSecTransformPtr transform)
-+{
++static int
++xmlSecRelationshipInitialize(xmlSecTransformPtr transform) {
 +    xmlSecRelationshipCtxPtr ctx;
 +    int ret;
 +
@@ -154,21 +191,19 @@ index e67631e..0fef1fe 100644
 +    memset(ctx, 0, sizeof(xmlSecRelationshipCtx));
 +
 +    ctx->sourceIdList = xmlSecPtrListCreate(xmlSecStringListId);
-+    if (!ctx->sourceIdList)
-+    {
++    if(ctx->sourceIdList == NULL) {
 +        xmlSecError(XMLSEC_ERRORS_HERE,
 +                    xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
 +                    "xmlSecPtrListCreate",
-+                    XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+                    XMLSEC_ERRORS_NO_MESSAGE);
-+        return -1;
++                     XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                     XMLSEC_ERRORS_NO_MESSAGE);
++        return(-1);
 +    }
-+
-+    return 0;
++    return(0);
 +}
 +
-+static void xmlSecRelationshipFinalize(xmlSecTransformPtr transform)
-+{
++static void
++xmlSecRelationshipFinalize(xmlSecTransformPtr transform) {
 +    xmlSecRelationshipCtxPtr ctx;
 +
 +    xmlSecAssert(xmlSecTransformCheckId(transform, xmlSecTransformRelationshipId));
@@ -177,14 +212,15 @@ index e67631e..0fef1fe 100644
 +    ctx = xmlSecRelationshipGetCtx(transform);
 +    xmlSecAssert(ctx != NULL);
 +
-+    if (ctx->sourceIdList)
-+	xmlSecPtrListDestroy(ctx->sourceIdList);
++    if(ctx->sourceIdList != NULL) {
++       xmlSecPtrListDestroy(ctx->sourceIdList);
++    }
 +
 +    memset(ctx, 0, sizeof(xmlSecRelationshipCtx));
 +}
 +
-+static int xmlSecRelationshipReadNode(xmlSecTransformPtr transform, xmlNodePtr node, xmlSecTransformCtxPtr transformCtx)
-+{
++static int
++xmlSecRelationshipReadNode(xmlSecTransformPtr transform, xmlNodePtr node, xmlSecTransformCtxPtr transformCtx) {
 +    xmlSecRelationshipCtxPtr ctx;
 +    xmlNodePtr cur;
 +    int ret;
@@ -197,238 +233,372 @@ index e67631e..0fef1fe 100644
 +    xmlSecAssert2(ctx != NULL, -1);
 +
 +    cur = node->children;
-+    while (cur)
-+    {
-+        if (xmlSecCheckNodeName(cur, "RelationshipReference", "http://schemas.openxmlformats.org/package/2006/digital-signature"))
-+        {
++    while(cur != NULL) {
++        if(xmlSecCheckNodeName(cur, xmlSecNodeRelationshipReference, xmlSecRelationshipReferenceNs)) {
 +            xmlChar* sourceId;
 +            xmlChar* tmp;
 +
 +            sourceId = xmlGetProp(cur, "SourceId");
-+            if (sourceId == NULL)
-+            {
++            if(sourceId == NULL) {
 +                xmlSecError(XMLSEC_ERRORS_HERE,
-+                            NULL,
++                            "xmlGetProp",
 +                            xmlSecErrorsSafeString("SourceId"),
 +                            XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE,
 +                            "node=%s",
 +                            xmlSecErrorsSafeString(xmlSecNodeGetName(node)));
-+                return -1;
++                return(-1);
 +            }
 +
 +            tmp = xmlStrdup(sourceId);
-+            if (!tmp)
-+            {
++            if(tmp == NULL) {
 +                xmlSecError(XMLSEC_ERRORS_HERE,
 +                            xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
-+                            NULL,
++                            "xmlStrdup",
 +                            XMLSEC_ERRORS_R_STRDUP_FAILED,
 +                            "len=%d", xmlStrlen(sourceId));
-+                return -1;
++                return(-1);
 +            }
 +
 +            ret = xmlSecPtrListAdd(ctx->sourceIdList, tmp);
-+            if (ret < 0)
-+            {
++            if(ret < 0) {
 +                xmlSecError(XMLSEC_ERRORS_HERE,
 +                            xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
 +                            "xmlSecPtrListAdd",
 +                            XMLSEC_ERRORS_R_XMLSEC_FAILED,
 +                            XMLSEC_ERRORS_NO_MESSAGE);
 +                xmlFree(tmp);
-+                return -1;
++                return(-1);
 +            }
-+
 +        }
 +
 +        cur = cur->next;
 +    }
 +
-+    return 0;
++    return(0);
 +}
 +
-+int xmlSecTransformRelationshipProcessElementNode(xmlSecTransformPtr transform, xmlOutputBufferPtr buf, xmlNodePtr cur)
-+{
-+    xmlAttrPtr attr;
-+    int foundTargetMode = 0;
-+
-+    xmlOutputBufferWriteString(buf, "<");
-+    xmlOutputBufferWriteString(buf, (const char *)cur->name);
++/* Sorts Relationship elements by Id value in lexicographical order. */
++static int
++xmlSecTransformRelationshipCompare(xmlNodePtr node1, xmlNodePtr node2) {
++    xmlChar* id1;
++    xmlChar* id2;
 +
-+    if (cur->nsDef)
-+    {
-+        xmlOutputBufferWriteString(buf, " xmlns=\"");
-+        if (cur->nsDef->href)
-+            xmlOutputBufferWriteString(buf, cur->nsDef->href);
-+        xmlOutputBufferWriteString(buf, "\"");
++    if(node1 == node2) {
++        return(0);
 +    }
-+
-+    for (attr = cur->properties; attr; attr = attr->next)
-+    {
-+        xmlOutputBufferWriteString(buf, " ");
-+        xmlOutputBufferWriteString(buf, (const char *)attr->name);
-+        if (strcmp(attr->name, "TargetMode") == 0)
-+            foundTargetMode = 1;
-+        xmlOutputBufferWriteString(buf, "=\"");
-+        xmlOutputBufferWriteString(buf, (const char *)xmlGetProp(cur, attr->name));
-+        xmlOutputBufferWriteString(buf, "\"");
++    if(node1 == NULL) {
++        return(-1);
++    }
++    if(node2 == NULL) {
++        return(1);
 +    }
 +
-+    if (strcmp(cur->name, "Relationship") == 0 && !foundTargetMode)
-+        xmlOutputBufferWriteString(buf, " TargetMode=\"Internal\"");
-+
-+    xmlOutputBufferWriteString(buf, ">");
++    id1 = xmlGetProp(node1, "Id");
++    id2 = xmlGetProp(node2, "Id");
 +
-+    if (cur->children)
-+    {
-+        int ret = xmlSecTransformRelationshipProcessNodeList(transform, buf, cur->children);
-+        if (ret < 0)
-+            return -1;
++    if(id1 == NULL) {
++        return(-1);
 +    }
 +
-+    xmlOutputBufferWriteString(buf, "</");
-+    xmlOutputBufferWriteString(buf, (const char *)cur->name);
-+    xmlOutputBufferWriteString(buf, ">");
++    if(id2 == NULL) {
++        return(1);
++    }
 +
-+    return 0;
++    return(xmlStrcmp(id1, id2));
 +}
 +
-+int xmlSecTransformRelationshipProcessNode(xmlSecTransformPtr transform, xmlOutputBufferPtr buf, xmlNodePtr cur)
-+{
++static int
++xmlSecTransformRelationshipProcessElementNode(xmlSecTransformPtr transform, xmlOutputBufferPtr buf, xmlNodePtr cur);
++
++static int
++xmlSecTransformRelationshipProcessNode(xmlSecTransformPtr transform, xmlOutputBufferPtr buf, xmlNodePtr cur) {
 +    int ret;
 +
-+    switch (cur->type)
-+    {
-+    case XML_ELEMENT_NODE:
-+        if (xmlSecCheckNodeName(cur, "Relationship", "http://schemas.openxmlformats.org/package/2006/relationships"))
-+        {
-+            xmlChar* id = xmlGetProp(cur, "Id");
-+            if (id)
-+            {
-+                int i;
-+                int found = 0;
-+                xmlSecRelationshipCtxPtr ctx;
-+
-+                ctx = xmlSecRelationshipGetCtx(transform);
-+                for (i = 0; i < xmlSecPtrListGetSize(ctx->sourceIdList); ++i)
-+                {
-+                    if (strcmp(xmlSecPtrListGetItem(ctx->sourceIdList, i), id) == 0)
-+                    {
-+                        found = 1;
-+                        break;
-+                    }
-+                }
-+
-+                if (!found)
-+                    return 0;
++    if(xmlSecCheckNodeName(cur, xmlSecNodeRelationship, xmlSecRelationshipsNs)) {
++        xmlChar* id = xmlGetProp(cur, "Id");
++        if(id == NULL) {
++            xmlSecError(XMLSEC_ERRORS_HERE,
++                        xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                        "xmlGetProp",
++                        XMLSEC_ERRORS_R_XML_FAILED,
++                        "name=Id");
++            return(-1);
++        }
++
++        int i;
++        int found = -1;
++        xmlSecRelationshipCtxPtr ctx;
++
++        ctx = xmlSecRelationshipGetCtx(transform);
++        for(i = 0; i < xmlSecPtrListGetSize(ctx->sourceIdList); ++i) {
++            if(xmlStrcmp(xmlSecPtrListGetItem(ctx->sourceIdList, i), id) == 0) {
++                found = 1;
++                break;
 +            }
 +        }
 +
-+        ret = xmlSecTransformRelationshipProcessElementNode(transform, buf, cur);
-+        if (ret < 0)
-+            return -1;
-+        break;
++        if(found < 0) {
++            return(0);
++        }
 +    }
 +
-+    return 0;
-+}
-+
-+/* Sorts Relationship elements by Id value in lexicographical order. */
-+static int xmlSecTransformRelationshipCompare(xmlNodePtr node1, xmlNodePtr node2)
-+{
-+    xmlChar* id1;
-+    xmlChar* id2;
-+
-+    if (node1 == node2)
-+        return 0;
-+    if (!node1)
-+        return -1;
-+    if (!node2)
-+        return 1;
- 
-+    id1 = xmlGetProp(node1, "Id");
-+    id2 = xmlGetProp(node2, "Id");
- 
-+    if (!id1)
-+        return -1;
-+    if (!id2)
-+        return 1;
++    ret = xmlSecTransformRelationshipProcessElementNode(transform, buf, cur);
++    if(ret < 0) {
++        xmlSecError(XMLSEC_ERRORS_HERE,
++                    xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                    "xmlSecTransformRelationshipProcessElementNode",
++                    XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                    XMLSEC_ERRORS_NO_MESSAGE);
++        return(-1);
++    }
 +
-+    return xmlStrcmp(id1, id2);
++    return(0);
 +}
 +
-+int xmlSecTransformRelationshipProcessNodeList(xmlSecTransformPtr transform, xmlOutputBufferPtr buf, xmlNodePtr cur)
-+{
++static int
++xmlSecTransformRelationshipProcessNodeList(xmlSecTransformPtr transform, xmlOutputBufferPtr buf, xmlNodePtr cur) {
 +    xmlListPtr list;
 +    int ret;
 +
 +    list = xmlListCreate(NULL, (xmlListDataCompare)xmlSecTransformRelationshipCompare);
-+    if (!list)
-+        return -1;
-+
-+    for (; cur; cur = cur->next)
-+    {
-+        if (strcmp(cur->name, "Relationship") == 0)
-+            xmlListInsert(list, cur);
-+        else
-+        {
++    if(list == NULL) {
++        xmlSecError(XMLSEC_ERRORS_HERE,
++                    xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                    "xmlListCreate",
++                    XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                    XMLSEC_ERRORS_NO_MESSAGE);
++        return(-1);
++    }
++
++    for(; cur; cur = cur->next) {
++        if(xmlStrcmp(cur->name, xmlSecNodeRelationship) == 0) {
++            if(xmlListInsert(list, cur) != 0) {
++                xmlSecError(XMLSEC_ERRORS_HERE,
++                            xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                            "xmlListInsert",
++                            XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                            XMLSEC_ERRORS_NO_MESSAGE);
++                return(-1);
++            }
++        } else {
 +            ret = xmlSecTransformRelationshipProcessNode(transform, buf, cur);
-+            if (ret < 0)
-+            {
++            if(ret < 0) {
++                xmlSecError(XMLSEC_ERRORS_HERE,
++                            xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                            "xmlSecTransformRelationshipProcessNode",
++                            XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                            XMLSEC_ERRORS_NO_MESSAGE);
 +                xmlListDelete(list);
-+                return -1;
++                return(-1);
 +            }
 +        }
 +    }
 +
-+    if (!xmlListEmpty(list))
-+    {
++    if(!xmlListEmpty(list)) {
 +        int size;
 +        int i;
 +
 +        xmlListSort(list);
 +        size = xmlListSize(list);
-+        for (i = 0; i < size; ++i)
-+        {
++        for(i = 0; i < size; ++i) {
 +            xmlLinkPtr link = xmlListFront(list);
 +            xmlNodePtr node = (xmlNodePtr)xmlLinkGetData(link);
 +
 +            ret = xmlSecTransformRelationshipProcessNode(transform, buf, node);
-+            if (ret < 0)
-+            {
++            if(ret < 0) {
++                xmlSecError(XMLSEC_ERRORS_HERE,
++                            xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                            "xmlSecTransformRelationshipProcessNode",
++                            XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                            XMLSEC_ERRORS_NO_MESSAGE);
 +                xmlListDelete(list);
-+                return -1;
++                return(-1);
 +            }
 +
 +            xmlListPopFront(list);
 +        }
-+
 +    }
 +
 +    xmlListDelete(list);
-+    return 0;
++    return(0);
 +}
 +
-+int xmlSecTransformRelationshipExecute(xmlSecTransformPtr transform, xmlOutputBufferPtr buf, xmlDocPtr doc)
-+{
-+    if (doc->children != NULL)
-+    {
++static int
++xmlSecTransformRelationshipProcessElementNode(xmlSecTransformPtr transform, xmlOutputBufferPtr buf, xmlNodePtr cur) {
++    xmlAttrPtr attr;
++    int foundTargetMode = 0;
++
++    if(xmlOutputBufferWriteString(buf, "<") < 0) {
++        xmlSecError(XMLSEC_ERRORS_HERE,
++                    xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                    "xmlOutputBufferWriteString",
++                    XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                    XMLSEC_ERRORS_NO_MESSAGE);
++        return(-1);
++    }
++    if(xmlOutputBufferWriteString(buf, (const char *)cur->name) < 0) {
++        xmlSecError(XMLSEC_ERRORS_HERE,
++                    xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                    "xmlOutputBufferWriteString",
++                    XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                    XMLSEC_ERRORS_NO_MESSAGE);
++        return(-1);
++    }
++
++    if(cur->nsDef != NULL) {
++        if(xmlOutputBufferWriteString(buf, " xmlns=\"") < 0) {
++            xmlSecError(XMLSEC_ERRORS_HERE,
++                        xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                        "xmlOutputBufferWriteString",
++                        XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                        XMLSEC_ERRORS_NO_MESSAGE);
++            return(-1);
++        }
++        if(cur->nsDef->href != NULL) {
++            if(xmlOutputBufferWriteString(buf, cur->nsDef->href) < 0) {
++                xmlSecError(XMLSEC_ERRORS_HERE,
++                            xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                            "xmlOutputBufferWriteString",
++                            XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                            XMLSEC_ERRORS_NO_MESSAGE);
++                return(-1);
++            }
++        }
++        if(xmlOutputBufferWriteString(buf, "\"") < 0) {
++            xmlSecError(XMLSEC_ERRORS_HERE,
++                        xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                        "xmlOutputBufferWriteString",
++                        XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                        XMLSEC_ERRORS_NO_MESSAGE);
++            return(-1);
++        }
++    }
++
++    for(attr = cur->properties; attr; attr = attr->next) {
++        if(xmlOutputBufferWriteString(buf, " ") < 0) {
++            xmlSecError(XMLSEC_ERRORS_HERE,
++                        xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                        "xmlOutputBufferWriteString",
++                        XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                        XMLSEC_ERRORS_NO_MESSAGE);
++            return(-1);
++        }
++        if(xmlOutputBufferWriteString(buf, (const char *)attr->name) < 0) {
++            xmlSecError(XMLSEC_ERRORS_HERE,
++                        xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                        "xmlOutputBufferWriteString",
++                        XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                        XMLSEC_ERRORS_NO_MESSAGE);
++            return(-1);
++        }
++        if(xmlStrcmp(attr->name, "TargetMode") == 0) {
++            foundTargetMode = 1;
++        }
++        if(xmlOutputBufferWriteString(buf, "=\"") < 0) {
++            xmlSecError(XMLSEC_ERRORS_HERE,
++                        xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                        "xmlOutputBufferWriteString",
++                        XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                        XMLSEC_ERRORS_NO_MESSAGE);
++            return(-1);
++        }
++        if(xmlOutputBufferWriteString(buf, (const char *)xmlGetProp(cur, attr->name)) < 0) {
++            xmlSecError(XMLSEC_ERRORS_HERE,
++                        xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                        "xmlOutputBufferWriteString",
++                        XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                        XMLSEC_ERRORS_NO_MESSAGE);
++            return(-1);
++        }
++        if(xmlOutputBufferWriteString(buf, "\"") < 0) {
++            xmlSecError(XMLSEC_ERRORS_HERE,
++                        xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                        "xmlOutputBufferWriteString",
++                        XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                        XMLSEC_ERRORS_NO_MESSAGE);
++            return(-1);
++        }
++    }
++
++    if(xmlStrcmp(cur->name, xmlSecNodeRelationship) == 0 && !foundTargetMode) {
++        if(xmlOutputBufferWriteString(buf, " TargetMode=\"Internal\"") < 0) {
++            xmlSecError(XMLSEC_ERRORS_HERE,
++                        xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                        "xmlOutputBufferWriteString",
++                        XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                        XMLSEC_ERRORS_NO_MESSAGE);
++            return(-1);
++        }
++    }
++
++    if(xmlOutputBufferWriteString(buf, ">") < 0) {
++        xmlSecError(XMLSEC_ERRORS_HERE,
++                    xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                    "xmlOutputBufferWriteString",
++                    XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                    XMLSEC_ERRORS_NO_MESSAGE);
++        return(-1);
++    }
++
++    if(cur->children != NULL) {
++        int ret = xmlSecTransformRelationshipProcessNodeList(transform, buf, cur->children);
++        if(ret < 0) {
++            xmlSecError(XMLSEC_ERRORS_HERE,
++                        xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                        "xmlSecTransformRelationshipProcessNodeList",
++                        XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                        XMLSEC_ERRORS_NO_MESSAGE);
++            return(-1);
++        }
++    }
++
++    if(xmlOutputBufferWriteString(buf, "</") < 0) {
++        xmlSecError(XMLSEC_ERRORS_HERE,
++                    xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                    "xmlOutputBufferWriteString",
++                    XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                    XMLSEC_ERRORS_NO_MESSAGE);
++        return(-1);
++    }
++    if(xmlOutputBufferWriteString(buf, (const char *)cur->name) < 0) {
++        xmlSecError(XMLSEC_ERRORS_HERE,
++                    xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                    "xmlOutputBufferWriteString",
++                    XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                    XMLSEC_ERRORS_NO_MESSAGE);
++        return(-1);
++    }
++    if(xmlOutputBufferWriteString(buf, ">") < 0) {
++        xmlSecError(XMLSEC_ERRORS_HERE,
++                    xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                    "xmlOutputBufferWriteString",
++                    XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                    XMLSEC_ERRORS_NO_MESSAGE);
++        return(-1);
++    }
++
++    return(0);
++}
++
++static int
++xmlSecTransformRelationshipExecute(xmlSecTransformPtr transform, xmlOutputBufferPtr buf, xmlDocPtr doc) {
++    if(doc->children != NULL) {
 +        int ret = xmlSecTransformRelationshipProcessNodeList(transform, buf, doc->children);
-+        if (ret < 0)
-+        {
++        if(ret < 0) {
 +            xmlSecError(XMLSEC_ERRORS_HERE,
 +                        xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
 +                        "xmlSecTransformRelationshipProcessNodeList",
 +                        XMLSEC_ERRORS_R_XMLSEC_FAILED,
 +                        XMLSEC_ERRORS_NO_MESSAGE);
-+            return -1;
++            return(-1);
 +        }
 +    }
 +
-+    return 0;
++    return(0);
 +}
 +
-+static int xmlSecTransformRelationshipPushXml(xmlSecTransformPtr transform, xmlSecNodeSetPtr nodes, xmlSecTransformCtxPtr transformCtx)
++static int
++xmlSecTransformRelationshipPushXml(xmlSecTransformPtr transform, xmlSecNodeSetPtr nodes, xmlSecTransformCtxPtr transformCtx)
 +{
 +    xmlOutputBufferPtr buf;
 +    xmlSecRelationshipCtxPtr ctx;
@@ -442,79 +612,72 @@ index e67631e..0fef1fe 100644
 +    xmlSecAssert2(ctx != NULL, -1);
 +
 +    /* check/update current transform status */
-+    switch(transform->status)
-+    {
++    switch(transform->status) {
 +    case xmlSecTransformStatusNone:
-+	transform->status = xmlSecTransformStatusWorking;
-+	break;
++       transform->status = xmlSecTransformStatusWorking;
++       break;
 +    case xmlSecTransformStatusWorking:
 +    case xmlSecTransformStatusFinished:
-+	return(0);
++       return(0);
 +    default:
-+	xmlSecError(XMLSEC_ERRORS_HERE,
-+		    xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
-+		    NULL,
-+		    XMLSEC_ERRORS_R_INVALID_STATUS,
-+		    "status=%d", transform->status);
-+	return(-1);
++       xmlSecError(XMLSEC_ERRORS_HERE,
++                   xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                   NULL,
++                   XMLSEC_ERRORS_R_INVALID_STATUS,
++                   "status=%d", transform->status);
++       return(-1);
 +    }
 +    xmlSecAssert2(transform->status == xmlSecTransformStatusWorking, -1);
 +
 +    /* prepare output buffer: next transform or ourselves */
-+    if(transform->next != NULL)
-+    {
-+	buf = xmlSecTransformCreateOutputBuffer(transform->next, transformCtx);
-+	if(buf == NULL)
-+	{
-+	    xmlSecError(XMLSEC_ERRORS_HERE,
-+			xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
-+			"xmlSecTransformCreateOutputBuffer",
-+			XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+			XMLSEC_ERRORS_NO_MESSAGE);
-+	    return(-1);
-+	}
-+    } else
-+    {
-+	buf = xmlSecBufferCreateOutputBuffer(&(transform->outBuf));
-+	if (buf == NULL)
-+	{
-+	    xmlSecError(XMLSEC_ERRORS_HERE,
-+			xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
-+			"xmlSecBufferCreateOutputBuffer",
-+			XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+			XMLSEC_ERRORS_NO_MESSAGE);
-+	    return(-1);
-+	}
++    if(transform->next != NULL) {
++       buf = xmlSecTransformCreateOutputBuffer(transform->next, transformCtx);
++       if(buf == NULL) {
++           xmlSecError(XMLSEC_ERRORS_HERE,
++                       xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                       "xmlSecTransformCreateOutputBuffer",
++                       XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                       XMLSEC_ERRORS_NO_MESSAGE);
++           return(-1);
++       }
++    } else {
++       buf = xmlSecBufferCreateOutputBuffer(&(transform->outBuf));
++       if(buf == NULL) {
++           xmlSecError(XMLSEC_ERRORS_HERE,
++                       xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                       "xmlSecBufferCreateOutputBuffer",
++                       XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                       XMLSEC_ERRORS_NO_MESSAGE);
++           return(-1);
++       }
 +    }
 +
 +    ret = xmlSecTransformRelationshipExecute(transform, buf, nodes->doc);
-+    if (ret < 0)
-+    {
-+	xmlSecError(XMLSEC_ERRORS_HERE,
-+		    xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
-+		    "xmlC14NExecute",
-+		    XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+		    XMLSEC_ERRORS_NO_MESSAGE);
-+	xmlOutputBufferClose(buf);
-+	return(-1);
++    if(ret < 0) {
++       xmlSecError(XMLSEC_ERRORS_HERE,
++                   xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                   "xmlC14NExecute",
++                   XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                   XMLSEC_ERRORS_NO_MESSAGE);
++       xmlOutputBufferClose(buf);
++       return(-1);
 +    }
 +
 +    ret = xmlOutputBufferClose(buf);
-+    if (ret < 0)
-+    {
-+	xmlSecError(XMLSEC_ERRORS_HERE,
-+		    xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
-+		    "xmlOutputBufferClose",
-+		    XMLSEC_ERRORS_R_XML_FAILED,
-+		    XMLSEC_ERRORS_NO_MESSAGE);
-+	return(-1);
++    if(ret < 0) {
++       xmlSecError(XMLSEC_ERRORS_HERE,
++                   xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                   "xmlOutputBufferClose",
++                   XMLSEC_ERRORS_R_XML_FAILED,
++                   XMLSEC_ERRORS_NO_MESSAGE);
++       return(-1);
 +    }
 +    transform->status = xmlSecTransformStatusFinished;
 +    return(0);
 +}
 +
-+static int xmlSecTransformRelationshipPopBin(xmlSecTransformPtr transform, xmlSecByte* data, xmlSecSize maxDataSize, xmlSecSize* dataSize, xmlSecTransformCtxPtr transformCtx)
-+{
++static int
++xmlSecTransformRelationshipPopBin(xmlSecTransformPtr transform, xmlSecByte* data, xmlSecSize maxDataSize, xmlSecSize* dataSize, xmlSecTransformCtxPtr transformCtx) {
 +    xmlSecBufferPtr out;
 +    int ret;
 +
@@ -523,120 +686,105 @@ index e67631e..0fef1fe 100644
 +    xmlSecAssert2(transformCtx != NULL, -1);
 +
 +    out = &(transform->outBuf);
-+    if (transform->status == xmlSecTransformStatusNone)
-+    {
-+	xmlOutputBufferPtr buf;
-+
-+	xmlSecAssert2(transform->inNodes == NULL, -1);
-+
-+	/* todo: isn't it an error? */
-+	if (transform->prev == NULL)
-+	{
-+	    (*dataSize) = 0;
-+	    transform->status = xmlSecTransformStatusFinished;
-+	    return(0);
-+	}
-+
-+	/* get xml data from previous transform */
-+	ret = xmlSecTransformPopXml(transform->prev, &(transform->inNodes), transformCtx);
-+	if (ret < 0)
-+	{
-+	    xmlSecError(XMLSEC_ERRORS_HERE,
-+			xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
-+			"xmlSecTransformPopXml",
-+			XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+			XMLSEC_ERRORS_NO_MESSAGE);
-+	    return(-1);
-+	}
-+
-+	/* dump everything to internal buffer */
-+	buf = xmlSecBufferCreateOutputBuffer(out);
-+	if (buf == NULL)
-+	{
-+	    xmlSecError(XMLSEC_ERRORS_HERE,
-+			xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
-+			"xmlSecBufferCreateOutputBuffer",
-+			XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+			XMLSEC_ERRORS_NO_MESSAGE);
-+	    return(-1);
-+	}
-+
-+        ret = xmlC14NExecute(transform->inNodes->doc, (xmlC14NIsVisibleCallback)xmlSecNodeSetContains, transform->inNodes, XML_C14N_1_0, NULL, 0, buf);
-+        if (ret < 0)
-+	{
++    if(transform->status == xmlSecTransformStatusNone) {
++       xmlOutputBufferPtr buf;
++
++       xmlSecAssert2(transform->inNodes == NULL, -1);
++
++       if(transform->prev == NULL) {
++           (*dataSize) = 0;
++           transform->status = xmlSecTransformStatusFinished;
++           return(0);
++       }
++
++       /* get xml data from previous transform */
++       ret = xmlSecTransformPopXml(transform->prev, &(transform->inNodes), transformCtx);
++       if(ret < 0) {
++           xmlSecError(XMLSEC_ERRORS_HERE,
++                       xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                       "xmlSecTransformPopXml",
++                       XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                       XMLSEC_ERRORS_NO_MESSAGE);
++           return(-1);
++       }
++
++       /* dump everything to internal buffer */
++       buf = xmlSecBufferCreateOutputBuffer(out);
++       if(buf == NULL) {
++           xmlSecError(XMLSEC_ERRORS_HERE,
++                       xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                       "xmlSecBufferCreateOutputBuffer",
++                       XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                       XMLSEC_ERRORS_NO_MESSAGE);
++           return(-1);
++       }
++
++       ret = xmlC14NExecute(transform->inNodes->doc, (xmlC14NIsVisibleCallback)xmlSecNodeSetContains, transform->inNodes, XML_C14N_1_0, NULL, 0, buf);
++       if(ret < 0) {
 +            xmlSecError(XMLSEC_ERRORS_HERE,
-+			xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
-+			"xmlSecTransformC14NExecute",
-+			XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+			XMLSEC_ERRORS_NO_MESSAGE);
-+	    xmlOutputBufferClose(buf);
-+	    return(-1);
-+	}
-+	ret = xmlOutputBufferClose(buf);
-+	if (ret < 0)
-+	{
-+	    xmlSecError(XMLSEC_ERRORS_HERE,
-+			xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
-+			"xmlOutputBufferClose",
-+			XMLSEC_ERRORS_R_XML_FAILED,
-+			XMLSEC_ERRORS_NO_MESSAGE);
-+	    return(-1);
-+	}
-+	transform->status = xmlSecTransformStatusWorking;
++                       xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                       "xmlSecTransformC14NExecute",
++                       XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                       XMLSEC_ERRORS_NO_MESSAGE);
++           xmlOutputBufferClose(buf);
++           return(-1);
++       }
++
++       ret = xmlOutputBufferClose(buf);
++       if(ret < 0) {
++           xmlSecError(XMLSEC_ERRORS_HERE,
++                       xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                       "xmlOutputBufferClose",
++                       XMLSEC_ERRORS_R_XML_FAILED,
++                       XMLSEC_ERRORS_NO_MESSAGE);
++           return(-1);
++       }
++       transform->status = xmlSecTransformStatusWorking;
 +    }
 +
-+    if (transform->status == xmlSecTransformStatusWorking)
-+    {
-+	xmlSecSize outSize;
-+
-+	/* return chunk after chunk */
-+	outSize = xmlSecBufferGetSize(out);
-+	if (outSize > maxDataSize)
-+	{
-+	    outSize = maxDataSize;
-+	}
-+	if (outSize > XMLSEC_TRANSFORM_BINARY_CHUNK)
-+	{
-+	    outSize = XMLSEC_TRANSFORM_BINARY_CHUNK;
-+	}
-+	if (outSize > 0)
-+	{
-+	    xmlSecAssert2(xmlSecBufferGetData(&(transform->outBuf)), -1);
-+
-+	    memcpy(data, xmlSecBufferGetData(&(transform->outBuf)), outSize);
-+	    ret = xmlSecBufferRemoveHead(&(transform->outBuf), outSize);
-+            if (ret < 0)
-+	    {
-+		xmlSecError(XMLSEC_ERRORS_HERE,
-+			    xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
-+			    "xmlSecBufferRemoveHead",
-+			    XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+			    "size=%d", outSize);
-+		return(-1);
-+	    }
-+	}
-+	else if (xmlSecBufferGetSize(out) == 0)
-+	    transform->status = xmlSecTransformStatusFinished;
-+	(*dataSize) = outSize;
-+    }
-+    else if (transform->status == xmlSecTransformStatusFinished)
-+    {
-+	/* the only way we can get here is if there is no output */
-+	xmlSecAssert2(xmlSecBufferGetSize(out) == 0, -1);
-+	(*dataSize) = 0;
-+    }
-+    else
-+    {
-+	xmlSecError(XMLSEC_ERRORS_HERE,
-+		    xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
-+		    NULL,
-+		    XMLSEC_ERRORS_R_INVALID_STATUS,
-+		    "status=%d", transform->status);
-+	return(-1);
++    if(transform->status == xmlSecTransformStatusWorking) {
++       xmlSecSize outSize;
++
++       /* return chunk after chunk */
++       outSize = xmlSecBufferGetSize(out);
++       if(outSize > maxDataSize) {
++           outSize = maxDataSize;
++       }
++       if(outSize > XMLSEC_TRANSFORM_BINARY_CHUNK) {
++           outSize = XMLSEC_TRANSFORM_BINARY_CHUNK;
++       }
++       if(outSize > 0) {
++           xmlSecAssert2(xmlSecBufferGetData(&(transform->outBuf)), -1);
++
++           memcpy(data, xmlSecBufferGetData(&(transform->outBuf)), outSize);
++           ret = xmlSecBufferRemoveHead(&(transform->outBuf), outSize);
++           if(ret < 0) {
++               xmlSecError(XMLSEC_ERRORS_HERE,
++                           xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                           "xmlSecBufferRemoveHead",
++                           XMLSEC_ERRORS_R_XMLSEC_FAILED,
++                           "size=%d", outSize);
++               return(-1);
++           }
++       } else if(xmlSecBufferGetSize(out) == 0) {
++           transform->status = xmlSecTransformStatusFinished;
++       }
++       (*dataSize) = outSize;
++    } else if(transform->status == xmlSecTransformStatusFinished) {
++       /* the only way we can get here is if there is no output */
++       xmlSecAssert2(xmlSecBufferGetSize(out) == 0, -1);
++       (*dataSize) = 0;
++    } else {
++       xmlSecError(XMLSEC_ERRORS_HERE,
++                   xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
++                   NULL,
++                   XMLSEC_ERRORS_R_INVALID_STATUS,
++                   "status=%d", transform->status);
++       return(-1);
 +    }
 +
 +    return(0);
 +}
 -- 
-2.6.2
+2.6.6
 
diff --git a/external/libxmlsec/xmlsec1-update-config.guess.patch.1 b/external/libxmlsec/xmlsec1-update-config.guess.patch.1
deleted file mode 100644
index f92cfd2..0000000
--- a/external/libxmlsec/xmlsec1-update-config.guess.patch.1
+++ /dev/null
@@ -1,672 +0,0 @@
-From f8e7b18d6e4302e848606ac04f96aa55b79dbef8 Mon Sep 17 00:00:00 2001
-From: David Tardon <dtardon at redhat.com>
-Date: Tue, 13 May 2014 16:35:04 +0200
-Subject: [PATCH] update config.* to support ppc64le
-
-Conflicts:
-	config.guess
-	config.sub
----
- config.guess | 184 ++++++++++++++++++++++++++++++++++-------------------------
- config.sub   | 108 ++++++++++++++++++++---------------
- 2 files changed, 169 insertions(+), 123 deletions(-)
-
-diff --git a/config.guess b/config.guess
-index d622a44..b79252d 100755
---- a/config.guess
-+++ b/config.guess
-@@ -1,14 +1,12 @@
- #! /bin/sh
- # Attempt to guess a canonical system name.
--#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
--#   2011, 2012 Free Software Foundation, Inc.
-+#   Copyright 1992-2013 Free Software Foundation, Inc.
- 
--timestamp='2012-02-10'
-+timestamp='2013-06-10'
- 
- # This file is free software; you can redistribute it and/or modify it
- # under the terms of the GNU General Public License as published by
--# the Free Software Foundation; either version 2 of the License, or
-+# the Free Software Foundation; either version 3 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful, but
-@@ -22,19 +20,17 @@ timestamp='2012-02-10'
- # As a special exception to the GNU General Public License, if you
- # distribute this file as part of a program that contains a
- # configuration script generated by Autoconf, you may include it under
--# the same distribution terms that you use for the rest of that program.
--
--
--# Originally written by Per Bothner.  Please send patches (context
--# diff format) to <config-patches at gnu.org> and include a ChangeLog
--# entry.
-+# the same distribution terms that you use for the rest of that
-+# program.  This Exception is an additional permission under section 7
-+# of the GNU General Public License, version 3 ("GPLv3").
- #
--# This script attempts to guess a canonical system name similar to
--# config.sub.  If it succeeds, it prints the system name on stdout, and
--# exits with 0.  Otherwise, it exits with 1.
-+# Originally written by Per Bothner.
- #
- # You can get the latest version of this script from:
- # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-+#
-+# Please send patches with a ChangeLog entry to config-patches at gnu.org.
-+
- 
- me=`echo "$0" | sed -e 's,.*/,,'`
- 
-@@ -54,9 +50,7 @@ version="\
- GNU config.guess ($timestamp)
- 
- Originally written by Per Bothner.
--Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
--2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
--Free Software Foundation, Inc.
-+Copyright 1992-2013 Free Software Foundation, Inc.
- 
- This is free software; see the source for copying conditions.  There is NO
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-@@ -138,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
- UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
- UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
- 
-+case "${UNAME_SYSTEM}" in
-+Linux|GNU|GNU/*)
-+	# If the system lacks a compiler, then just pick glibc.
-+	# We could probably try harder.
-+	LIBC=gnu
-+
-+	eval $set_cc_for_build
-+	cat <<-EOF > $dummy.c
-+	#include <features.h>
-+	#if defined(__UCLIBC__)
-+	LIBC=uclibc
-+	#elif defined(__dietlibc__)
-+	LIBC=dietlibc
-+	#else
-+	LIBC=gnu
-+	#endif
-+	EOF
-+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-+	;;
-+esac
-+
- # Note: order is significant - the case branches are not exclusive.
- 
- case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-@@ -200,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- 	echo "${machine}-${os}${release}"
- 	exit ;;
-+    *:Bitrig:*:*)
-+	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
-+	echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
-+	exit ;;
-     *:OpenBSD:*:*)
- 	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- 	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
-@@ -302,7 +321,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- 	echo arm-acorn-riscix${UNAME_RELEASE}
- 	exit ;;
--    arm:riscos:*:*|arm:RISCOS:*:*)
-+    arm*:riscos:*:*|arm*:RISCOS:*:*)
- 	echo arm-unknown-riscos
- 	exit ;;
-     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-@@ -801,6 +820,9 @@ EOF
-     i*:CYGWIN*:*)
- 	echo ${UNAME_MACHINE}-pc-cygwin
- 	exit ;;
-+    *:MINGW64*:*)
-+	echo ${UNAME_MACHINE}-pc-mingw64
-+	exit ;;
-     *:MINGW*:*)
- 	echo ${UNAME_MACHINE}-pc-mingw32
- 	exit ;;
-@@ -852,21 +874,21 @@ EOF
- 	exit ;;
-     *:GNU:*:*)
- 	# the GNU system
--	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- 	exit ;;
-     *:GNU/*:*:*)
- 	# other systems with GNU libc and userland
--	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
-+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
- 	exit ;;
-     i*86:Minix:*:*)
- 	echo ${UNAME_MACHINE}-pc-minix
- 	exit ;;
-     aarch64:Linux:*:*)
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	exit ;;
-     aarch64_be:Linux:*:*)
- 	UNAME_MACHINE=aarch64_be
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	exit ;;
-     alpha:Linux:*:*)
- 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-@@ -879,59 +901,54 @@ EOF
- 	  EV68*) UNAME_MACHINE=alphaev68 ;;
- 	esac
- 	objdump --private-headers /bin/sh | grep -q ld.so.1
--	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
--	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-+	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-+	exit ;;
-+    arc:Linux:*:* | arceb:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	exit ;;
-     arm*:Linux:*:*)
- 	eval $set_cc_for_build
- 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
- 	    | grep -q __ARM_EABI__
- 	then
--	    echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	    echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	else
- 	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
- 		| grep -q __ARM_PCS_VFP
- 	    then
--		echo ${UNAME_MACHINE}-unknown-linux-gnueabi
-+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
- 	    else
--		echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
-+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
- 	    fi
- 	fi
- 	exit ;;
-     avr32*:Linux:*:*)
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	exit ;;
-     cris:Linux:*:*)
--	echo ${UNAME_MACHINE}-axis-linux-gnu
-+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
- 	exit ;;
-     crisv32:Linux:*:*)
--	echo ${UNAME_MACHINE}-axis-linux-gnu
-+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
- 	exit ;;
-     frv:Linux:*:*)
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	exit ;;
-     hexagon:Linux:*:*)
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	exit ;;
-     i*86:Linux:*:*)
--	LIBC=gnu
--	eval $set_cc_for_build
--	sed 's/^	//' << EOF >$dummy.c
--	#ifdef __dietlibc__
--	LIBC=dietlibc
--	#endif
--EOF
--	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
--	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-+	echo ${UNAME_MACHINE}-pc-linux-${LIBC}
- 	exit ;;
-     ia64:Linux:*:*)
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	exit ;;
-     m32r*:Linux:*:*)
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	exit ;;
-     m68*:Linux:*:*)
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	exit ;;
-     mips:Linux:*:* | mips64:Linux:*:*)
- 	eval $set_cc_for_build
-@@ -950,54 +967,63 @@ EOF
- 	#endif
- EOF
- 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
--	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
- 	;;
-+    or1k:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-+	exit ;;
-     or32:Linux:*:*)
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	exit ;;
-     padre:Linux:*:*)
--	echo sparc-unknown-linux-gnu
-+	echo sparc-unknown-linux-${LIBC}
- 	exit ;;
-     parisc64:Linux:*:* | hppa64:Linux:*:*)
--	echo hppa64-unknown-linux-gnu
-+	echo hppa64-unknown-linux-${LIBC}
- 	exit ;;
-     parisc:Linux:*:* | hppa:Linux:*:*)
- 	# Look for CPU level
- 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
--	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
--	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
--	  *)    echo hppa-unknown-linux-gnu ;;
-+	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
-+	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
-+	  *)    echo hppa-unknown-linux-${LIBC} ;;
- 	esac
- 	exit ;;
-     ppc64:Linux:*:*)
--	echo powerpc64-unknown-linux-gnu
-+	echo powerpc64-unknown-linux-${LIBC}
- 	exit ;;
-     ppc:Linux:*:*)
--	echo powerpc-unknown-linux-gnu
-+	echo powerpc-unknown-linux-${LIBC}
-+	exit ;;
-+    ppc64le:Linux:*:*)
-+	echo powerpc64le-unknown-linux-${LIBC}
-+	exit ;;
-+    ppcle:Linux:*:*)
-+	echo powerpcle-unknown-linux-${LIBC}
- 	exit ;;
-     s390:Linux:*:* | s390x:Linux:*:*)
--	echo ${UNAME_MACHINE}-ibm-linux
-+	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
- 	exit ;;
-     sh64*:Linux:*:*)
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	exit ;;
-     sh*:Linux:*:*)
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	exit ;;
-     sparc:Linux:*:* | sparc64:Linux:*:*)
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	exit ;;
-     tile*:Linux:*:*)
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	exit ;;
-     vax:Linux:*:*)
--	echo ${UNAME_MACHINE}-dec-linux-gnu
-+	echo ${UNAME_MACHINE}-dec-linux-${LIBC}
- 	exit ;;
-     x86_64:Linux:*:*)
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	exit ;;
-     xtensa*:Linux:*:*)
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- 	exit ;;
-     i*86:DYNIX/ptx:4*:*)
- 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
-@@ -1201,6 +1227,9 @@ EOF
-     BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
- 	echo i586-pc-haiku
- 	exit ;;
-+    x86_64:Haiku:*:*)
-+	echo x86_64-unknown-haiku
-+	exit ;;
-     SX-4:SUPER-UX:*:*)
- 	echo sx4-nec-superux${UNAME_RELEASE}
- 	exit ;;
-@@ -1227,19 +1256,21 @@ EOF
- 	exit ;;
-     *:Darwin:*:*)
- 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
--	case $UNAME_PROCESSOR in
--	    i386)
--		eval $set_cc_for_build
--		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
--		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
--		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
--		      grep IS_64BIT_ARCH >/dev/null
--		  then
--		      UNAME_PROCESSOR="x86_64"
--		  fi
--		fi ;;
--	    unknown) UNAME_PROCESSOR=powerpc ;;
--	esac
-+	eval $set_cc_for_build
-+	if test "$UNAME_PROCESSOR" = unknown ; then
-+	    UNAME_PROCESSOR=powerpc
-+	fi
-+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-+	    if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-+		grep IS_64BIT_ARCH >/dev/null
-+	    then
-+		case $UNAME_PROCESSOR in
-+		    i386) UNAME_PROCESSOR=x86_64 ;;
-+		    powerpc) UNAME_PROCESSOR=powerpc64 ;;
-+		esac
-+	    fi
-+	fi
- 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
- 	exit ;;
-     *:procnto*:*:* | *:QNX:[0123456789]*:*)
-@@ -1256,7 +1287,7 @@ EOF
-     NEO-?:NONSTOP_KERNEL:*:*)
- 	echo neo-tandem-nsk${UNAME_RELEASE}
- 	exit ;;
--    NSE-?:NONSTOP_KERNEL:*:*)
-+    NSE-*:NONSTOP_KERNEL:*:*)
- 	echo nse-tandem-nsk${UNAME_RELEASE}
- 	exit ;;
-     NSR-?:NONSTOP_KERNEL:*:*)
-@@ -1330,9 +1361,6 @@ EOF
- 	exit ;;
- esac
- 
--#echo '(No uname command or uname output not recognized.)' 1>&2
--#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
--
- eval $set_cc_for_build
- cat >$dummy.c <<EOF
- #ifdef _SEQUENT_
-diff --git a/config.sub b/config.sub
-index c894da4..d2a9613 100755
---- a/config.sub
-+++ b/config.sub
-@@ -1,24 +1,18 @@
- #! /bin/sh
- # Configuration validation subroutine script.
--#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
--#   2011, 2012 Free Software Foundation, Inc.
-+#   Copyright 1992-2013 Free Software Foundation, Inc.
- 
--timestamp='2012-02-10'
-+timestamp='2013-08-10'
- 
--# This file is (in principle) common to ALL GNU software.
--# The presence of a machine in this file suggests that SOME GNU software
--# can handle that machine.  It does not imply ALL GNU software can.
--#
--# This file is free software; you can redistribute it and/or modify
--# it under the terms of the GNU General Public License as published by
--# the Free Software Foundation; either version 2 of the License, or
-+# This file is free software; you can redistribute it and/or modify it
-+# under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 3 of the License, or
- # (at your option) any later version.
- #
--# This program is distributed in the hope that it will be useful,
--# but WITHOUT ANY WARRANTY; without even the implied warranty of
--# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--# GNU General Public License for more details.
-+# This program is distributed in the hope that it will be useful, but
-+# WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+# General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, see <http://www.gnu.org/licenses/>.
-@@ -26,11 +20,12 @@ timestamp='2012-02-10'
- # As a special exception to the GNU General Public License, if you
- # distribute this file as part of a program that contains a
- # configuration script generated by Autoconf, you may include it under
--# the same distribution terms that you use for the rest of that program.
-+# the same distribution terms that you use for the rest of that
-+# program.  This Exception is an additional permission under section 7
-+# of the GNU General Public License, version 3 ("GPLv3").
- 
- 
--# Please send patches to <config-patches at gnu.org>.  Submit a context
--# diff and a properly formatted GNU ChangeLog entry.
-+# Please send patches with a ChangeLog entry to config-patches at gnu.org.
- #
- # Configuration subroutine to validate and canonicalize a configuration type.
- # Supply the specified configuration type as an argument.
-@@ -73,9 +68,7 @@ Report bugs and patches to <config-patches at gnu.org>."
- version="\
- GNU config.sub ($timestamp)
- 
--Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
--2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
--Free Software Foundation, Inc.
-+Copyright 1992-2013 Free Software Foundation, Inc.
- 
- This is free software; see the source for copying conditions.  There is NO
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-@@ -123,7 +116,7 @@ esac
- maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
- case $maybe_os in
-   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
--  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-   knetbsd*-gnu* | netbsd*-gnu* | \
-   kopensolaris*-gnu* | \
-   storm-chaos* | os2-emx* | rtmk-nova*)
-@@ -156,7 +149,7 @@ case $os in
- 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
--	-apple | -axis | -knuth | -cray | -microblaze)
-+	-apple | -axis | -knuth | -cray | -microblaze*)
- 		os=
- 		basic_machine=$1
- 		;;
-@@ -225,6 +218,12 @@ case $os in
- 	-isc*)
- 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- 		;;
-+	-lynx*178)
-+		os=-lynxos178
-+		;;
-+	-lynx*5)
-+		os=-lynxos5
-+		;;
- 	-lynx*)
- 		os=-lynxos
- 		;;
-@@ -253,10 +252,12 @@ case $basic_machine in
- 	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
- 	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
- 	| am33_2.0 \
--	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
--        | be32 | be64 \
-+	| arc | arceb \
-+	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
-+	| avr | avr32 \
-+	| be32 | be64 \
- 	| bfin \
--	| c4x | clipper \
-+	| c4x | c8051 | clipper \
- 	| d10v | d30v | dlx | dsp16xx \
- 	| epiphany \
- 	| fido | fr30 | frv \
-@@ -267,7 +268,7 @@ case $basic_machine in
- 	| le32 | le64 \
- 	| lm32 \
- 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
--	| maxq | mb | microblaze | mcore | mep | metag \
-+	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
- 	| mips | mipsbe | mipseb | mipsel | mipsle \
- 	| mips16 \
- 	| mips64 | mips64el \
-@@ -285,16 +286,17 @@ case $basic_machine in
- 	| mipsisa64r2 | mipsisa64r2el \
- 	| mipsisa64sb1 | mipsisa64sb1el \
- 	| mipsisa64sr71k | mipsisa64sr71kel \
-+	| mipsr5900 | mipsr5900el \
- 	| mipstx39 | mipstx39el \
- 	| mn10200 | mn10300 \
- 	| moxie \
- 	| mt \
- 	| msp430 \
- 	| nds32 | nds32le | nds32be \
--	| nios | nios2 \
-+	| nios | nios2 | nios2eb | nios2el \
- 	| ns16k | ns32k \
- 	| open8 \
--	| or32 \
-+	| or1k | or32 \
- 	| pdp10 | pdp11 | pj | pjl \
- 	| powerpc | powerpc64 | powerpc64le | powerpcle \
- 	| pyramid \
-@@ -364,13 +366,13 @@ case $basic_machine in
- 	| aarch64-* | aarch64_be-* \
- 	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- 	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
--	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
-+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
- 	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
- 	| avr-* | avr32-* \
- 	| be32-* | be64-* \
- 	| bfin-* | bs2000-* \
- 	| c[123]* | c30-* | [cjt]90-* | c4x-* \
--	| clipper-* | craynv-* | cydra-* \
-+	| c8051-* | clipper-* | craynv-* | cydra-* \
- 	| d10v-* | d30v-* | dlx-* \
- 	| elxsi-* \
- 	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
-@@ -383,7 +385,8 @@ case $basic_machine in
- 	| lm32-* \
- 	| m32c-* | m32r-* | m32rle-* \
- 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
--	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
-+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
-+	| microblaze-* | microblazeel-* \
- 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- 	| mips16-* \
- 	| mips64-* | mips64el-* \
-@@ -401,12 +404,13 @@ case $basic_machine in
- 	| mipsisa64r2-* | mipsisa64r2el-* \
- 	| mipsisa64sb1-* | mipsisa64sb1el-* \
- 	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
-+	| mipsr5900-* | mipsr5900el-* \
- 	| mipstx39-* | mipstx39el-* \
- 	| mmix-* \
- 	| mt-* \
- 	| msp430-* \
- 	| nds32-* | nds32le-* | nds32be-* \
--	| nios-* | nios2-* \
-+	| nios-* | nios2-* | nios2eb-* | nios2el-* \
- 	| none-* | np1-* | ns16k-* | ns32k-* \
- 	| open8-* \
- 	| orion-* \
-@@ -782,11 +786,15 @@ case $basic_machine in
- 		basic_machine=ns32k-utek
- 		os=-sysv
- 		;;
--	microblaze)
-+	microblaze*)
- 		basic_machine=microblaze-xilinx
- 		;;
-+	mingw64)
-+		basic_machine=x86_64-pc
-+		os=-mingw64
-+		;;
- 	mingw32)
--		basic_machine=i386-pc
-+		basic_machine=i686-pc
- 		os=-mingw32
- 		;;
- 	mingw32ce)
-@@ -822,7 +830,7 @@ case $basic_machine in
- 		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
- 		;;
- 	msys)
--		basic_machine=i386-pc
-+		basic_machine=i686-pc
- 		os=-msys
- 		;;
- 	mvs)
-@@ -998,7 +1006,7 @@ case $basic_machine in
- 		;;
- 	ppc64)	basic_machine=powerpc64-unknown
- 		;;
--	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-+	ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
- 		;;
- 	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
- 		basic_machine=powerpc64le-unknown
-@@ -1013,7 +1021,11 @@ case $basic_machine in
- 		basic_machine=i586-unknown
- 		os=-pw32
- 		;;
--	rdos)
-+	rdos | rdos64)
-+		basic_machine=x86_64-pc
-+		os=-rdos
-+		;;
-+	rdos32)
- 		basic_machine=i386-pc
- 		os=-rdos
- 		;;
-@@ -1340,21 +1352,21 @@ case $os in
- 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- 	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
- 	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
--	      | -sym* | -kopensolaris* \
-+	      | -sym* | -kopensolaris* | -plan9* \
- 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- 	      | -aos* | -aros* \
- 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
--	      | -openbsd* | -solidbsd* \
-+	      | -bitrig* | -openbsd* | -solidbsd* \
- 	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
- 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- 	      | -chorusos* | -chorusrdb* | -cegcc* \
- 	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
--	      | -mingw32* | -linux-gnu* | -linux-android* \
--	      | -linux-newlib* | -linux-uclibc* \
-+	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
-+	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
- 	      | -uxpv* | -beos* | -mpeix* | -udk* \
- 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-@@ -1486,9 +1498,6 @@ case $os in
- 	-aros*)
- 		os=-aros
- 		;;
--	-kaos*)
--		os=-kaos
--		;;
- 	-zvmoe)
- 		os=-zvmoe
- 		;;
-@@ -1537,6 +1546,12 @@ case $basic_machine in
- 	c4x-* | tic4x-*)
- 		os=-coff
- 		;;
-+	c8051-*)
-+		os=-elf
-+		;;
-+	hexagon-*)
-+		os=-elf
-+		;;
- 	tic54x-*)
- 		os=-coff
- 		;;
-@@ -1577,6 +1592,9 @@ case $basic_machine in
- 	mips*-*)
- 		os=-elf
- 		;;
-+	or1k-*)
-+		os=-elf
-+		;;
- 	or32-*)
- 		os=-coff
- 		;;
--- 
-2.6.2
-


More information about the Libreoffice-commits mailing list