Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package shibboleth-sp for openSUSE:Factory 
checked in at 2022-11-23 09:48:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/shibboleth-sp (Old)
 and      /work/SRC/openSUSE:Factory/.shibboleth-sp.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "shibboleth-sp"

Wed Nov 23 09:48:00 2022 rev:21 rq:1037351 version:3.4.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/shibboleth-sp/shibboleth-sp.changes      
2021-12-02 22:31:42.474342590 +0100
+++ /work/SRC/openSUSE:Factory/.shibboleth-sp.new.1597/shibboleth-sp.changes    
2022-11-23 09:48:26.291145317 +0100
@@ -1,0 +2,8 @@
+Thu Nov 17 16:56:40 UTC 2022 - Danilo Spinella <danilo.spine...@suse.com>
+
+- Updaet to 3.4.0:
+  * Add a new setting suggested controlling retries when TCP connections
+   to shibd are used.
+- Change libraries soname from 10 to 11
+
+-------------------------------------------------------------------

Old:
----
  shibboleth-sp-3.3.0.tar.bz2
  shibboleth-sp-3.3.0.tar.bz2.asc

New:
----
  shibboleth-sp-3.4.0.tar.bz2
  shibboleth-sp-3.4.0.tar.bz2.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ shibboleth-sp.spec ++++++
--- /var/tmp/diff_new_pack.o1MNrS/_old  2022-11-23 09:48:26.979148907 +0100
+++ /var/tmp/diff_new_pack.o1MNrS/_new  2022-11-23 09:48:26.983148928 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package shibboleth-sp
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,13 +16,13 @@
 #
 
 
-%define libvers 10
-%define libvers_lite 10
+%define libvers 11
+%define libvers_lite 11
 %define runuser shibd
 %define realname shibboleth
 %define pkgdocdir %{_docdir}/%{realname}
 Name:           shibboleth-sp
-Version:        3.3.0
+Version:        3.4.0
 Release:        0
 Summary:        System for attribute-based Web Single Sign On
 License:        Apache-2.0

++++++ shibboleth-sp-3.3.0.tar.bz2 -> shibboleth-sp-3.4.0.tar.bz2 ++++++
++++ 4059 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/Projects/vc15/shibsp/shibsp-lite.vcxproj 
new/shibboleth-sp-3.4.0/Projects/vc15/shibsp/shibsp-lite.vcxproj
--- old/shibboleth-sp-3.3.0/Projects/vc15/shibsp/shibsp-lite.vcxproj    
2021-10-19 21:04:27.000000000 +0200
+++ new/shibboleth-sp-3.4.0/Projects/vc15/shibsp/shibsp-lite.vcxproj    
2022-10-26 17:11:22.000000000 +0200
@@ -92,10 +92,10 @@
     <CodeAnalysisRuleSet 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
     <CodeAnalysisRules 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
     <CodeAnalysisRuleAssemblies 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
-    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)3_3</TargetName>
-    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)3_3</TargetName>
-    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)3_3D</TargetName>
-    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)3_3D</TargetName>
+    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)3_4</TargetName>
+    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)3_4</TargetName>
+    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)3_4D</TargetName>
+    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)3_4D</TargetName>
   </PropertyGroup>
   <ItemDefinitionGroup 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
@@ -321,4 +321,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/Projects/vc15/shibsp/shibsp.vcxproj 
new/shibboleth-sp-3.4.0/Projects/vc15/shibsp/shibsp.vcxproj
--- old/shibboleth-sp-3.3.0/Projects/vc15/shibsp/shibsp.vcxproj 2021-10-19 
21:04:27.000000000 +0200
+++ new/shibboleth-sp-3.4.0/Projects/vc15/shibsp/shibsp.vcxproj 2022-10-26 
17:11:09.000000000 +0200
@@ -90,10 +90,10 @@
     <CodeAnalysisRuleSet 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
     <CodeAnalysisRules 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
     <CodeAnalysisRuleAssemblies 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
-    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)3_3D</TargetName>
-    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)3_3D</TargetName>
-    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)3_3</TargetName>
-    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)3_3</TargetName>
+    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)3_4D</TargetName>
+    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)3_4D</TargetName>
+    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)3_4</TargetName>
+    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)3_4</TargetName>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     
<IntDir>$(SolutionDir)..\..\Build\VC15\$(projectName)\$(Platform)\$(Configuration)\</IntDir>
@@ -389,4 +389,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/apache/mod_shib.cpp 
new/shibboleth-sp-3.4.0/apache/mod_shib.cpp
--- old/shibboleth-sp-3.3.0/apache/mod_shib.cpp 2021-11-01 18:43:34.000000000 
+0100
+++ new/shibboleth-sp-3.4.0/apache/mod_shib.cpp 2022-07-18 18:24:36.000000000 
+0200
@@ -1983,10 +1983,10 @@
     // Initialize runtime components.
 
     ap_log_error(APLOG_MARK, APLOG_INFO|APLOG_NOERRNO, SH_AP_R(s), 
"child_init: mod_shib initializing in pid (%d)", (int)getpid());
-    ap_log_error(APLOG_MARK, APLOG_WARNING|APLOG_NOERRNO, SH_AP_R(s), 
"DEPRECATED: Apache 1.3 module, please upgrade to Apache 2.4+");
 
     // 2.x versions have already initialized the libraries.
 #ifdef SHIB_APACHE_13
+    ap_log_error(APLOG_MARK, APLOG_WARNING|APLOG_NOERRNO, SH_AP_R(s), 
"DEPRECATED: Apache 1.3 module, please upgrade to Apache 2.4+");
     if (g_Config) {
         ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, SH_AP_R(s), 
"child_init: mod_shib already initialized, exiting");
         exit(1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/config_win32.h new/shibboleth-sp-3.4.0/config_win32.h
--- old/shibboleth-sp-3.3.0/config_win32.h      2021-10-19 21:04:27.000000000 
+0200
+++ new/shibboleth-sp-3.4.0/config_win32.h      2022-10-24 15:45:10.000000000 
+0200
@@ -121,13 +121,13 @@
 #define PACKAGE_NAME "shibboleth"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "shibboleth 3.3.0"
+#define PACKAGE_STRING "shibboleth 3.4.0"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "shibboleth-sp"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "3.3.0"
+#define PACKAGE_VERSION "3.4.0"
 
 /* Define to the necessary symbol if this constant uses a non-standard name on
    your system. */
@@ -140,7 +140,7 @@
 /* #undef TM_IN_SYS_TIME */
 
 /* Version number of package */
-#define VERSION "3.3.0"
+#define VERSION "3.3.1"
 
 /* Define to empty if `const' does not conform to ANSI C. */
 /* #undef const */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/configure.ac new/shibboleth-sp-3.4.0/configure.ac
--- old/shibboleth-sp-3.3.0/configure.ac        2021-10-19 21:04:27.000000000 
+0200
+++ new/shibboleth-sp-3.4.0/configure.ac        2022-10-24 15:44:22.000000000 
+0200
@@ -1,5 +1,5 @@
 AC_PREREQ([2.50])
-AC_INIT([shibboleth],[3.3.0],[https://shibboleth.atlassian.net/jira],[shibboleth-sp])
+AC_INIT([shibboleth],[3.4.0],[https://shibboleth.atlassian.net/jira],[shibboleth-sp])
 AC_CONFIG_SRCDIR(shibsp)
 AC_CONFIG_AUX_DIR(build-aux)
 AC_CONFIG_MACRO_DIR(m4)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/m4/libtool.m4 new/shibboleth-sp-3.4.0/m4/libtool.m4
--- old/shibboleth-sp-3.3.0/m4/libtool.m4       2021-11-29 14:44:25.000000000 
+0100
+++ new/shibboleth-sp-3.4.0/m4/libtool.m4       2022-10-24 15:49:04.000000000 
+0200
@@ -1,6 +1,7 @@
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
-#   Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
+#   Copyright (C) 1996-2001, 2003-2019, 2021-2022 Free Software
+#   Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
@@ -31,7 +32,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ])
 
-# serial 58 LT_INIT
+# serial 59 LT_INIT
 
 
 # LT_PREREQ(VERSION)
@@ -181,6 +182,7 @@
 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
 m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
 m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_DECL_FILECMD])dnl
 m4_require([_LT_CHECK_MAGIC_METHOD])dnl
 m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
@@ -219,8 +221,8 @@
 ofile=libtool
 can_build_shared=yes
 
-# All known linkers require a '.a' archive for static linking (except MSVC,
-# which needs '.lib').
+# All known linkers require a '.a' archive for static linking (except MSVC and
+# ICC, which need '.lib').
 libext=a
 
 with_gnu_ld=$lt_cv_prog_gnu_ld
@@ -778,7 +780,7 @@
   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" \
+  $SED '$q' "$ltmain" >> "$cfgfile" \
      || (rm -f "$cfgfile"; exit 1)
 
    mv -f "$cfgfile" "$ofile" ||
@@ -1042,8 +1044,8 @@
 _LT_EOF
       echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
       $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
-      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
-      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
       echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
       $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
       cat > conftest.c << _LT_EOF
@@ -1069,10 +1071,10 @@
       _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' 
;;
     darwin*)
       case $MACOSX_DEPLOYMENT_TARGET,$host in
-       10.[[012]],*|,*powerpc*-darwin[[5-8]]*)
-         _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined 
${wl}suppress' ;;
-       *)
-         _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+        10.[[012]],*|,*powerpc*-darwin[[5-8]]*)
+          _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined 
${wl}suppress' ;;
+        *)
+          _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
       esac
     ;;
   esac
@@ -1121,12 +1123,12 @@
     output_verbose_link_cmd=func_echo_all
     _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o 
\$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname 
\$verstring $_lt_dar_single_mod$_lt_dsymutil"
     _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle 
\$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
-    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > 
\$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib 
\$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags 
-install_name \$rpath/\$soname \$verstring 
$_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
-    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > 
\$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib 
-bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+    _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > 
\$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib 
\$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags 
-install_name \$rpath/\$soname \$verstring 
$_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+    _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > 
\$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib 
-bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
     m4_if([$1], [CXX],
 [   if test yes != "$lt_cv_apple_cc_single_mod"; then
       _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o 
\$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib 
\$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname 
\$verstring$_lt_dsymutil"
-      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > 
\$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs 
-nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag 
-o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name 
\$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
+      _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > 
\$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs 
-nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag 
-o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name 
\$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
     fi
 ],[])
   else
@@ -1240,7 +1242,8 @@
 # _LT_WITH_SYSROOT
 # ----------------
 AC_DEFUN([_LT_WITH_SYSROOT],
-[AC_MSG_CHECKING([for sysroot])
+[m4_require([_LT_DECL_SED])dnl
+AC_MSG_CHECKING([for sysroot])
 AC_ARG_WITH([sysroot],
 [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
   [Search for dependent libraries within DIR (or the compiler's sysroot
@@ -1257,7 +1260,7 @@
    fi
    ;; #(
  /*)
-   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
    ;; #(
  no|'')
    ;; #(
@@ -1287,7 +1290,7 @@
   # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
+    case `$FILECMD conftest.$ac_objext` in
       *ELF-32*)
        HPUX_IA64_MODE=32
        ;;
@@ -1304,7 +1307,7 @@
   echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     if test yes = "$lt_cv_prog_gnu_ld"; then
-      case `/usr/bin/file conftest.$ac_objext` in
+      case `$FILECMD conftest.$ac_objext` in
        *32-bit*)
          LD="${LD-ld} -melf32bsmip"
          ;;
@@ -1316,7 +1319,7 @@
        ;;
       esac
     else
-      case `/usr/bin/file conftest.$ac_objext` in
+      case `$FILECMD conftest.$ac_objext` in
        *32-bit*)
          LD="${LD-ld} -32"
          ;;
@@ -1338,7 +1341,7 @@
   echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     emul=elf
-    case `/usr/bin/file conftest.$ac_objext` in
+    case `$FILECMD conftest.$ac_objext` in
       *32-bit*)
        emul="${emul}32"
        ;;
@@ -1346,7 +1349,7 @@
        emul="${emul}64"
        ;;
     esac
-    case `/usr/bin/file conftest.$ac_objext` in
+    case `$FILECMD conftest.$ac_objext` in
       *MSB*)
        emul="${emul}btsmip"
        ;;
@@ -1354,7 +1357,7 @@
        emul="${emul}ltsmip"
        ;;
     esac
-    case `/usr/bin/file conftest.$ac_objext` in
+    case `$FILECMD conftest.$ac_objext` in
       *N32*)
        emul="${emul}n32"
        ;;
@@ -1374,14 +1377,14 @@
   # not appear in the list.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
+    case `$FILECMD conftest.o` in
       *32-bit*)
        case $host in
          x86_64-*kfreebsd*-gnu)
            LD="${LD-ld} -m elf_i386_fbsd"
            ;;
          x86_64-*linux*)
-           case `/usr/bin/file conftest.o` in
+           case `$FILECMD conftest.o` in
              *x86-64*)
                LD="${LD-ld} -m elf32_x86_64"
                ;;
@@ -1449,7 +1452,7 @@
   # options accordingly.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
+    case `$FILECMD conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
       yes*)
@@ -1488,9 +1491,22 @@
 m4_defun([_LT_PROG_AR],
 [AC_CHECK_TOOLS(AR, [ar], false)
 : ${AR=ar}
-: ${AR_FLAGS=cru}
 _LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+# Use ARFLAGS variable as AR's operation code to sync the variable naming with
+# Automake.  If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
+# higher priority because thats what people were doing historically (setting
+# ARFLAGS for automake and AR_FLAGS for libtool).  FIXME: Make the AR_FLAGS
+# variable obsoleted/removed.
+
+test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
+lt_ar_flags=$AR_FLAGS
+_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)])
+
+# Make AR_FLAGS overridable by 'make ARFLAGS='.  Don't try to run-time override
+# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
+_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}],
+         [Flags to create an archive])
 
 AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
   [lt_cv_ar_at_file=no
@@ -1709,7 +1725,7 @@
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
-  bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
+  bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | 
openbsd*)
     # This has been around since 386BSD, at least.  Likely further.
     if test -x /sbin/sysctl; then
       lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
@@ -1752,7 +1768,7 @@
   sysv5* | sco5v6* | sysv4.2uw2*)
     kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
     if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[        ]]//'`
+      lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[[       ]]//'`
     else
       lt_cv_sys_max_cmd_len=32768
     fi
@@ -2202,26 +2218,35 @@
 striplib=
 old_striplib=
 AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
+if test -z "$STRIP"; then
+  AC_MSG_RESULT([no])
 else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP"; then
+  if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+    old_striplib="$STRIP --strip-debug"
+    striplib="$STRIP --strip-unneeded"
+    AC_MSG_RESULT([yes])
+  else
+    case $host_os in
+    darwin*)
+      # FIXME - insert some real tests, host_os isn't really good enough
       striplib="$STRIP -x"
       old_striplib="$STRIP -S"
       AC_MSG_RESULT([yes])
-    else
+      ;;
+    freebsd*)
+      if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
+        old_striplib="$STRIP --strip-debug"
+        striplib="$STRIP --strip-unneeded"
+        AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+      fi
+      ;;
+    *)
       AC_MSG_RESULT([no])
-    fi
-    ;;
-  *)
-    AC_MSG_RESULT([no])
-    ;;
-  esac
+      ;;
+    esac
+  fi
 fi
 _LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
 _LT_DECL([], [striplib], [1])
@@ -2544,7 +2569,7 @@
     case $host_os in
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED 
-e 's/[[.]]/-/g'`$versuffix$shared_ext'
+      soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | 
$SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
 m4_if([$1], [],[
       sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
       ;;
@@ -2554,14 +2579,14 @@
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release 
| $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+      library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release 
| $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
       ;;
     esac
     dynamic_linker='Win32 ld.exe'
     ;;
 
-  *,cl*)
-    # Native MSVC
+  *,cl* | *,icl*)
+    # Native MSVC or ICC
     libname_spec='$name'
     soname_spec='$libname`echo $release | $SED -e 
's/[[.]]/-/g'`$versuffix$shared_ext'
     library_names_spec='$libname.dll.lib'
@@ -2580,7 +2605,7 @@
       done
       IFS=$lt_save_ifs
       # Convert to MSYS style.
-      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 
's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 
's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
       ;;
     cygwin*)
       # Convert to unix form, then to dos form, then back to unix form
@@ -2617,7 +2642,7 @@
     ;;
 
   *)
-    # Assume MSVC wrapper
+    # Assume MSVC and ICC wrapper
     library_names_spec='$libname`echo $release | $SED -e 
's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
     dynamic_linker='Win32 ld.exe'
     ;;
@@ -2650,7 +2675,7 @@
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd* | dragonfly*)
+freebsd* | dragonfly* | midnightbsd*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
   if test -x /usr/bin/objformat; then
@@ -3449,7 +3474,7 @@
 
 bsdi[[45]]*)
   lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB 
(shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_cmd='$FILECMD -L'
   lt_cv_file_magic_test_file=/shlib/libc.so
   ;;
 
@@ -3483,14 +3508,14 @@
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-freebsd* | dragonfly*)
+freebsd* | dragonfly* | midnightbsd*)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     case $host_cpu in
     i*86 )
       # Not sure whether the presence of OpenBSD here was a mistake.
       # Let's accept both of them until this is cleared up.
       lt_cv_deplibs_check_method='file_magic 
(FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_cmd=$FILECMD
       lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
       ;;
     esac
@@ -3504,7 +3529,7 @@
   ;;
 
 hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_cmd=$FILECMD
   case $host_cpu in
   ia64*)
     lt_cv_deplibs_check_method='file_magic 
(s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
@@ -3551,7 +3576,7 @@
 
 newos6*)
   lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB 
(executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_cmd=$FILECMD
   lt_cv_file_magic_test_file=/usr/lib/libnls.so
   ;;
 
@@ -3678,13 +3703,13 @@
        mingw*) lt_bad_file=conftest.nm/nofile ;;
        *) lt_bad_file=/dev/null ;;
        esac
-       case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+       case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in
        *$lt_bad_file* | *'Invalid file or object type'*)
          lt_cv_path_NM="$tmp_nm -B"
          break 2
          ;;
        *)
-         case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+         case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in
          */dev/null*)
            lt_cv_path_NM="$tmp_nm -p"
            break 2
@@ -3710,7 +3735,7 @@
     # Let the user override the test.
   else
     AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
-    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
+    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in
     *COFF*)
       DUMPBIN="$DUMPBIN -symbols -headers"
       ;;
@@ -3950,7 +3975,7 @@
 
 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
   # Gets list of data symbols to import.
-  lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+  lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"
   # Adjust the below global symbol transforms to fixup imported variables.
   lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
   lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
@@ -3968,20 +3993,20 @@
 # Transform an extracted symbol line into a proper C declaration.
 # Some systems (esp. on ia64) link data and code symbols differently,
 # so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+lt_cv_sys_global_symbol_to_cdecl="$SED -n"\
 $lt_cdecl_hook\
 " -e 's/^T .* \(.*\)$/extern int \1();/p'"\
 " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\
 $lt_c_name_hook\
 " -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
 " -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
 
 # Transform an extracted symbol line into symbol name with lib prefix and
 # symbol address.
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\
 $lt_c_name_lib_hook\
 " -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
 " -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
@@ -4005,7 +4030,7 @@
   if test "$lt_cv_nm_interface" = "MS dumpbin"; then
     # Fake it for dumpbin and say T for any non-static function,
     # D for any global variable and I for any imported variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
+    # Also find C++ and __fastcall symbols from MSVC++ or ICC,
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
 "     {last_section=section; section=\$ 3};"\
@@ -4023,9 +4048,9 @@
 "     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
 "     ' prfx=^$ac_symprfx]"
   else
-    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[    
]]\($symcode$symcode*\)[[       ]][[    
]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+    lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[[   
]]\($symcode$symcode*\)[[       ]][[    
]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
   fi
-  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ 
__gnu_lto/d'"
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ 
__gnu_lto/d'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
@@ -4312,7 +4337,7 @@
            ;;
        esac
        ;;
-      freebsd* | dragonfly*)
+      freebsd* | dragonfly* | midnightbsd*)
        # FreeBSD uses GNU C++
        ;;
       hpux9* | hpux10* | hpux11*)
@@ -4395,7 +4420,7 @@
            _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
            ;;
          *)
-           case `$CC -V 2>&1 | sed 5q` in
+           case `$CC -V 2>&1 | $SED 5q` in
            *Sun\ C*)
              # Sun C++ 5.9
              _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
@@ -4731,7 +4756,7 @@
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
        ;;
       *)
-       case `$CC -V 2>&1 | sed 5q` in
+       case `$CC -V 2>&1 | $SED 5q` in
        *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 
8.[[0-3]]*)
          # Sun Fortran 8.3 passes all unrecognized flags to the linker
          _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
@@ -4914,7 +4939,7 @@
     if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
       _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | 
awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == 
"W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } 
else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
     else
-      _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e 
'\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 
2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") 
|| (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 
== "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | 
sort -u > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e 
'\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 
2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") 
|| (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 
== "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print 
\$ 1 } } }'\'' | sort -u > $export_symbols'
     fi
     ;;
   pw32*)
@@ -4922,7 +4947,7 @@
     ;;
   cygwin* | mingw* | cegcc*)
     case $cc_basename in
-    cl*)
+    cl* | icl*)
       _LT_TAGVAR(exclude_expsyms, 
$1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
       ;;
     *)
@@ -4979,15 +5004,15 @@
 
   case $host_os in
   cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
     # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
+    # Microsoft Visual C++ or Intel C++ Compiler.
     if test yes != "$GCC"; then
       with_gnu_ld=no
     fi
     ;;
   interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
     with_gnu_ld=yes
     ;;
   openbsd* | bitrig*)
@@ -5039,7 +5064,7 @@
       _LT_TAGVAR(whole_archive_flag_spec, $1)=
     fi
     supports_anon_versioning=no
-    case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
+    case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in
       *GNU\ gold*) supports_anon_versioning=yes ;;
       *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
       *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
@@ -5151,6 +5176,7 @@
        emximp -o $lib $output_objdir/$libname.def'
       _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o 
$output_objdir/${libname}_dll.a $output_objdir/$libname.def'
       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='@'
       ;;
 
     interix[[3-9]]*)
@@ -5165,7 +5191,7 @@
       # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
       # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs 
$compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 
262144 + 1342177280` -o $lib'
-      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols 
>$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs 
$compiler_flags $wl-h,$soname 
$wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr 
${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols 
>$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs 
$compiler_flags $wl-h,$soname 
$wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr 
${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
     gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
@@ -5208,7 +5234,7 @@
          _LT_TAGVAR(compiler_needs_object, $1)=yes
          ;;
        esac
-       case `$CC -V 2>&1 | sed 5q` in
+       case `$CC -V 2>&1 | $SED 5q` in
        *Sun\ C*)                       # Sun C 5.9
          _LT_TAGVAR(whole_archive_flag_spec, 
$1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test 
-z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all 
\"$new_convenience\"` $wl--no-whole-archive'
          _LT_TAGVAR(compiler_needs_object, $1)=yes
@@ -5220,7 +5246,7 @@
 
         if test yes = "$supports_anon_versioning"; then
           _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > 
$output_objdir/$libname.ver~
-            cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> 
$output_objdir/$libname.ver~
+            cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> 
$output_objdir/$libname.ver~
             echo "local: *; };" >> $output_objdir/$libname.ver~
             $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs 
$compiler_flags $wl-soname $wl$soname $wl-version-script 
$wl$output_objdir/$libname.ver -o $lib'
         fi
@@ -5236,7 +5262,7 @@
          _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs 
$linker_flags -soname $soname -o $lib'
          if test yes = "$supports_anon_versioning"; then
            _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > 
$output_objdir/$libname.ver~
-              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> 
$output_objdir/$libname.ver~
+              cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> 
$output_objdir/$libname.ver~
               echo "local: *; };" >> $output_objdir/$libname.ver~
               $LD -shared $libobjs $deplibs $linker_flags -soname $soname 
-version-script $output_objdir/$libname.ver -o $lib'
          fi
@@ -5368,7 +5394,7 @@
        if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
          _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | 
awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == 
"W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } 
else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
        else
-         _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e 
'\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 
2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") 
|| (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 
== "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | 
sort -u > $export_symbols'
+         _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e 
'\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 
2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") 
|| (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 
== "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print 
\$ 1 } } }'\'' | sort -u > $export_symbols'
        fi
        aix_use_runtimelinking=no
 
@@ -5551,12 +5577,12 @@
 
     cygwin* | mingw* | pw32* | cegcc*)
       # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
+      # Microsoft Visual C++ or Intel C++ Compiler.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
       case $cc_basename in
-      cl*)
-       # Native MSVC
+      cl* | icl*)
+       # Native MSVC or ICC
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
        _LT_TAGVAR(always_export_symbols, $1)=yes
@@ -5597,7 +5623,7 @@
           fi'
        ;;
       *)
-       # Assume MSVC wrapper
+       # Assume MSVC and ICC wrapper
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
        # Tell ltmain to make .lib files, not .a files.
@@ -5645,7 +5671,7 @@
       ;;
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | dragonfly*)
+    freebsd* | dragonfly* | midnightbsd*)
       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs 
$deplibs $compiler_flags'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
       _LT_TAGVAR(hardcode_direct, $1)=yes
@@ -5856,6 +5882,7 @@
        emximp -o $lib $output_objdir/$libname.def'
       _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o 
$output_objdir/${libname}_dll.a $output_objdir/$libname.def'
       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='@'
       ;;
 
     osf3*)
@@ -6626,8 +6653,8 @@
 
       cygwin* | mingw* | pw32* | cegcc*)
        case $GXX,$cc_basename in
-       ,cl* | no,cl*)
-         # Native MSVC
+       ,cl* | no,cl* | ,icl* | no,icl*)
+         # Native MSVC or ICC
          # hardcode_libdir_flag_spec is actually meaningless, as there is
          # no search path for DLLs.
          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
@@ -6725,6 +6752,7 @@
          emximp -o $lib $output_objdir/$libname.def'
        _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o 
$output_objdir/${libname}_dll.a $output_objdir/$libname.def'
        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+       _LT_TAGVAR(file_list_spec, $1)='@'
        ;;
 
       dgux*)
@@ -6755,7 +6783,7 @@
         _LT_TAGVAR(archive_cmds_need_lc, $1)=no
         ;;
 
-      freebsd* | dragonfly*)
+      freebsd* | dragonfly* | midnightbsd*)
         # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
         # conventions
         _LT_TAGVAR(ld_shlibs, $1)=yes
@@ -6892,7 +6920,7 @@
        # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
        # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs 
$compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 
262144 + 1342177280` -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols 
>$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs 
$compiler_flags $wl-h,$soname 
$wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr 
${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols 
>$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs 
$compiler_flags $wl-h,$soname 
$wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr 
${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
        ;;
       irix5* | irix6*)
         case $cc_basename in
@@ -7032,13 +7060,13 @@
            _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs 
$compiler_flags $wl-soname $wl$soname -o $lib'
            if test yes = "$supports_anon_versioning"; then
              _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > 
$output_objdir/$libname.ver~
-                cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> 
$output_objdir/$libname.ver~
+                cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> 
$output_objdir/$libname.ver~
                 echo "local: *; };" >> $output_objdir/$libname.ver~
                 $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname 
$wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
            fi
            ;;
          *)
-           case `$CC -V 2>&1 | sed 5q` in
+           case `$CC -V 2>&1 | $SED 5q` in
            *Sun\ C*)
              # Sun C++ 5.9
              _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
@@ -8184,6 +8212,14 @@
 AC_SUBST([DLLTOOL])
 ])
 
+# _LT_DECL_FILECMD
+# ----------------
+# Check for a file(cmd) program that can be used to detect file type and magic
+m4_defun([_LT_DECL_FILECMD],
+[AC_CHECK_TOOL([FILECMD], [file], [:])
+_LT_DECL([], [FILECMD], [1], [A file(cmd) program that detects file types])
+])# _LD_DECL_FILECMD
+
 # _LT_DECL_SED
 # ------------
 # Check for a fully-functional sed program, that truncates
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/m4/ltoptions.m4 new/shibboleth-sp-3.4.0/m4/ltoptions.m4
--- old/shibboleth-sp-3.3.0/m4/ltoptions.m4     2021-11-29 14:44:25.000000000 
+0100
+++ new/shibboleth-sp-3.4.0/m4/ltoptions.m4     2022-10-24 15:49:04.000000000 
+0200
@@ -1,7 +1,7 @@
 # Helper functions for option handling.                    -*- Autoconf -*-
 #
-#   Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
-#   Foundation, Inc.
+#   Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2022 Free
+#   Software Foundation, Inc.
 #   Written by Gary V. Vaughan, 2004
 #
 # This file is free software; the Free Software Foundation gives
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/m4/ltsugar.m4 new/shibboleth-sp-3.4.0/m4/ltsugar.m4
--- old/shibboleth-sp-3.3.0/m4/ltsugar.m4       2021-11-29 14:44:25.000000000 
+0100
+++ new/shibboleth-sp-3.4.0/m4/ltsugar.m4       2022-10-24 15:49:04.000000000 
+0200
@@ -1,6 +1,6 @@
 # ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
 #
-# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
+# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2022 Free Software
 # Foundation, Inc.
 # Written by Gary V. Vaughan, 2004
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/m4/ltversion.m4 new/shibboleth-sp-3.4.0/m4/ltversion.m4
--- old/shibboleth-sp-3.3.0/m4/ltversion.m4     2021-11-29 14:44:26.000000000 
+0100
+++ new/shibboleth-sp-3.4.0/m4/ltversion.m4     2022-10-24 15:49:04.000000000 
+0200
@@ -1,6 +1,7 @@
 # ltversion.m4 -- version numbers                      -*- Autoconf -*-
 #
-#   Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2011-2019, 2021-2022 Free Software Foundation,
+#   Inc.
 #   Written by Scott James Remnant, 2004
 #
 # This file is free software; the Free Software Foundation gives
@@ -9,15 +10,15 @@
 
 # @configure_input@
 
-# serial 4179 ltversion.m4
+# serial 4245 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.4.6])
-m4_define([LT_PACKAGE_REVISION], [2.4.6])
+m4_define([LT_PACKAGE_VERSION], [2.4.7])
+m4_define([LT_PACKAGE_REVISION], [2.4.7])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.6'
-macro_revision='2.4.6'
+[macro_version='2.4.7'
+macro_revision='2.4.7'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/m4/lt~obsolete.m4 
new/shibboleth-sp-3.4.0/m4/lt~obsolete.m4
--- old/shibboleth-sp-3.3.0/m4/lt~obsolete.m4   2021-11-29 14:44:26.000000000 
+0100
+++ new/shibboleth-sp-3.4.0/m4/lt~obsolete.m4   2022-10-24 15:49:04.000000000 
+0200
@@ -1,7 +1,7 @@
 # lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
 #
-#   Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
-#   Foundation, Inc.
+#   Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2022 Free
+#   Software Foundation, Inc.
 #   Written by Scott James Remnant, 2004.
 #
 # This file is free software; the Free Software Foundation gives
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/schemas/shibboleth-3.0-native-sp-config.xsd 
new/shibboleth-sp-3.4.0/schemas/shibboleth-3.0-native-sp-config.xsd
--- old/shibboleth-sp-3.3.0/schemas/shibboleth-3.0-native-sp-config.xsd 
2021-11-01 18:43:34.000000000 +0100
+++ new/shibboleth-sp-3.4.0/schemas/shibboleth-3.0-native-sp-config.xsd 
2022-10-24 15:48:53.000000000 +0200
@@ -9,7 +9,7 @@
        elementFormDefault="qualified"
        attributeFormDefault="unqualified"
        blockDefault="substitution"
-       version="3.2">
+       version="3.4">
 
   <import namespace="http://www.w3.org/2000/09/xmldsig#"; 
schemaLocation="xmldsig-core-schema.xsd" />
   <import namespace="urn:oasis:names:tc:SAML:2.0:assertion" 
schemaLocation="saml-schema-assertion-2.0.xsd"/>
@@ -877,6 +877,7 @@
               <attribute name="clientPort" type="unsignedInt"/>
               <attribute name="acl" type="conf:listOfStrings"/>
               <attribute name="stackSize" type="unsignedInt"/>
+              <attribute name="retryErrors" type="conf:string"/>
             </complexType>
           </element>
           <element name="Listener" type="conf:PluggableType"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/shibboleth.spec new/shibboleth-sp-3.4.0/shibboleth.spec
--- old/shibboleth-sp-3.3.0/shibboleth.spec     2021-11-29 14:50:23.000000000 
+0100
+++ new/shibboleth-sp-3.4.0/shibboleth.spec     2022-11-02 15:52:25.000000000 
+0100
@@ -1,5 +1,5 @@
 Name:          shibboleth
-Version:       3.3.0
+Version:       3.4.0
 Release:       1
 Summary:       Open source system for attribute-based Web SSO
 Group:         Productivity/Networking/Security
@@ -10,7 +10,7 @@
 BuildRoot:     %{_tmppath}/%{name}-sp-%{version}-root
 Obsoletes:     shibboleth-sp = 2.5.0
 Requires:      openssl
-%if 0%{?rhel} >= 6 || 0%{?amzn} >= 1
+%if 0%{?rhel} >= 6 || 0%{?amzn} == 1 || 0%{?amzn} == 2
 PreReq:                xmltooling-schemas%{?_isa} >= 3.2.0, 
opensaml-schemas%{?_isa} >= 3.2.0
 %else
 PreReq:                xmltooling-schemas >= 3.2.0, opensaml-schemas >= 3.2.0
@@ -33,7 +33,7 @@
 BuildRequires: libsaml-devel >= 3.2.0
 %{?_with_log4cpp:BuildRequires: liblog4cpp-devel >= 1.0}
 %{!?_with_log4cpp:BuildRequires: liblog4shib-devel >= 2}
-%if 0%{?rhel} == 6 || 0%{?rhel} == 7 || 0%{?amzn} >= 1
+%if 0%{?rhel} == 6 || 0%{?rhel} == 7 || 0%{?amzn} == 1 || 0%{?amzn} == 2
 Requires:      libcurl-openssl%{?_isa} >= 7.21.7
 BuildRequires: chrpath
 %endif
@@ -50,7 +50,7 @@
 %endif
 %{?_with_memcached:BuildRequires: libmemcached-devel}
 %if "%{_vendor}" == "redhat" || "%{_vendor}" == "amazon"
-%if 0%{?rhel} >= 6 || 0%{?amzn} >= 1
+%if 0%{?rhel} >= 6 || 0%{?amzn} == 1 || 0%{?amzn} == 2
 %{!?_without_builtinapache:BuildRequires: httpd-devel%{?_isa}}
 %else
 %{!?_without_builtinapache:BuildRequires: httpd-devel}
@@ -222,7 +222,7 @@
 Type=notify
 NotifyAccess=main
 User=%{runuser}
-%if 0%{?rhel} == 6 || 0%{?rhel} == 7 || 0%{?amzn} >= 1
+%if 0%{?rhel} == 6 || 0%{?rhel} == 7 || 0%{?amzn} == 1 || 0%{?amzn} == 2
 Environment=LD_LIBRARY_PATH=/opt/shibboleth/%{_lib}
 %endif
 ExecStart=%{_sbindir}/shibd -f -F
@@ -251,7 +251,7 @@
 # Wait period (secs) for configuration (and metadata) to load
 SHIBD_WAIT=30
 EOF
-       %if 0%{?rhel} == 6 || 0%{?rhel} == 7 || 0%{?amzn} >= 1
+       %if 0%{?rhel} == 6 || 0%{?rhel} == 7 || 0%{?amzn} == 1 || 0%{?amzn} == 2
                cat >> $SYSCONFIG_SHIBD <<EOF
 
 # Override OS-supplied libcurl
@@ -260,7 +260,7 @@
        %endif
 fi
 
-%if 0%{?rhel} == 6 || 0%{?rhel} == 7 || 0%{?amzn} >= 1
+%if 0%{?rhel} == 6 || 0%{?rhel} == 7 || 0%{?amzn} == 1 || 0%{?amzn} == 2
        # Strip existing rpath to libcurl.
        chrpath -d $RPM_BUILD_ROOT%{_sbindir}/shibd
        chrpath -d $RPM_BUILD_ROOT%{_bindir}/mdquery
@@ -481,6 +481,9 @@
 %doc %{pkgdocdir}/api
 
 %changelog
+* Wed Nov 2 2022 Scott Cantor <canto...@osu.edu> - 3.4.0-1
+- Version bump
+
 * Thu Apr 22 2021 Scott Cantor <canto...@osu.edu> - 3.2.2-1
 - Fix devel dependency versions
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/shibboleth.spec.in 
new/shibboleth-sp-3.4.0/shibboleth.spec.in
--- old/shibboleth-sp-3.3.0/shibboleth.spec.in  2021-10-05 21:20:47.000000000 
+0200
+++ new/shibboleth-sp-3.4.0/shibboleth.spec.in  2022-11-02 15:52:22.000000000 
+0100
@@ -10,7 +10,7 @@
 BuildRoot:     %{_tmppath}/%{name}-sp-%{version}-root
 Obsoletes:     shibboleth-sp = 2.5.0
 Requires:      openssl
-%if 0%{?rhel} >= 6 || 0%{?amzn} >= 1
+%if 0%{?rhel} >= 6 || 0%{?amzn} == 1 || 0%{?amzn} == 2
 PreReq:                xmltooling-schemas%{?_isa} >= 3.2.0, 
opensaml-schemas%{?_isa} >= 3.2.0
 %else
 PreReq:                xmltooling-schemas >= 3.2.0, opensaml-schemas >= 3.2.0
@@ -33,7 +33,7 @@
 BuildRequires: libsaml-devel >= 3.2.0
 %{?_with_log4cpp:BuildRequires: liblog4cpp-devel >= 1.0}
 %{!?_with_log4cpp:BuildRequires: liblog4shib-devel >= 2}
-%if 0%{?rhel} == 6 || 0%{?rhel} == 7 || 0%{?amzn} >= 1
+%if 0%{?rhel} == 6 || 0%{?rhel} == 7 || 0%{?amzn} == 1 || 0%{?amzn} == 2
 Requires:      libcurl-openssl%{?_isa} >= 7.21.7
 BuildRequires: chrpath
 %endif
@@ -50,7 +50,7 @@
 %endif
 %{?_with_memcached:BuildRequires: libmemcached-devel}
 %if "%{_vendor}" == "redhat" || "%{_vendor}" == "amazon"
-%if 0%{?rhel} >= 6 || 0%{?amzn} >= 1
+%if 0%{?rhel} >= 6 || 0%{?amzn} == 1 || 0%{?amzn} == 2
 %{!?_without_builtinapache:BuildRequires: httpd-devel%{?_isa}}
 %else
 %{!?_without_builtinapache:BuildRequires: httpd-devel}
@@ -222,7 +222,7 @@
 Type=notify
 NotifyAccess=main
 User=%{runuser}
-%if 0%{?rhel} == 6 || 0%{?rhel} == 7 || 0%{?amzn} >= 1
+%if 0%{?rhel} == 6 || 0%{?rhel} == 7 || 0%{?amzn} == 1 || 0%{?amzn} == 2
 Environment=LD_LIBRARY_PATH=/opt/shibboleth/%{_lib}
 %endif
 ExecStart=%{_sbindir}/shibd -f -F
@@ -251,7 +251,7 @@
 # Wait period (secs) for configuration (and metadata) to load
 SHIBD_WAIT=30
 EOF
-       %if 0%{?rhel} == 6 || 0%{?rhel} == 7 || 0%{?amzn} >= 1
+       %if 0%{?rhel} == 6 || 0%{?rhel} == 7 || 0%{?amzn} == 1 || 0%{?amzn} == 2
                cat >> $SYSCONFIG_SHIBD <<EOF
 
 # Override OS-supplied libcurl
@@ -260,7 +260,7 @@
        %endif
 fi
 
-%if 0%{?rhel} == 6 || 0%{?rhel} == 7 || 0%{?amzn} >= 1
+%if 0%{?rhel} == 6 || 0%{?rhel} == 7 || 0%{?amzn} == 1 || 0%{?amzn} == 2
        # Strip existing rpath to libcurl.
        chrpath -d $RPM_BUILD_ROOT%{_sbindir}/shibd
        chrpath -d $RPM_BUILD_ROOT%{_bindir}/mdquery
@@ -481,6 +481,9 @@
 %doc %{pkgdocdir}/api
 
 %changelog
+* Wed Nov 2 2022 Scott Cantor <canto...@osu.edu> - 3.4.0-1
+- Version bump
+
 * Thu Apr 22 2021 Scott Cantor <canto...@osu.edu> - 3.2.2-1
 - Fix devel dependency versions
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/shibsp/Makefile.am 
new/shibboleth-sp-3.4.0/shibsp/Makefile.am
--- old/shibboleth-sp-3.3.0/shibsp/Makefile.am  2021-10-19 21:04:27.000000000 
+0200
+++ new/shibboleth-sp-3.4.0/shibsp/Makefile.am  2022-10-24 17:45:30.000000000 
+0200
@@ -244,7 +244,7 @@
 
 # this is different from the project version
 # http://sources.redhat.com/autobook/autobook/autobook_91.html
-libshibsp_la_LDFLAGS = -version-info 10:3:0
+libshibsp_la_LDFLAGS = -version-info 11:0:0
 libshibsp_la_CXXFLAGS = \
     $(AM_CXXFLAGS) \
     $(BOOST_CPPFLAGS) \
@@ -263,7 +263,7 @@
     $(xerces_LIBS) \
     $(xmlsec_LIBS) \
     $(xmltooling_LIBS)
-libshibsp_lite_la_LDFLAGS = -version-info 10:3:0
+libshibsp_lite_la_LDFLAGS = -version-info 11:0:0
 libshibsp_lite_la_CXXFLAGS = -DSHIBSP_LITE \
     $(AM_CXXFLAGS) \
     $(BOOST_CPPFLAGS) \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/shibsp/attribute/filtering/impl/AttributeMatchesShibMDScopeFunctor.cpp
 
new/shibboleth-sp-3.4.0/shibsp/attribute/filtering/impl/AttributeMatchesShibMDScopeFunctor.cpp
--- 
old/shibboleth-sp-3.3.0/shibsp/attribute/filtering/impl/AttributeMatchesShibMDScopeFunctor.cpp
      2021-10-05 21:20:47.000000000 +0200
+++ 
new/shibboleth-sp-3.4.0/shibsp/attribute/filtering/impl/AttributeMatchesShibMDScopeFunctor.cpp
      2022-10-24 16:11:34.000000000 +0200
@@ -48,7 +48,9 @@
     class SHIBSP_DLLLOCAL AbstractAttributeMatchesShibMDScopeFunctor : public 
MatchFunctor
     {
     public:
-        bool evaluatePolicyRequirement(const FilteringContext& filterContext) 
const {
+        AbstractAttributeMatchesShibMDScopeFunctor() : 
m_log(Category::getInstance(SHIBSP_LOGCAT ".AttributeFilter")) {}
+
+        bool evaluatePolicyRequirement(const FilteringContext&) const {
             throw AttributeFilteringException("Metadata scope matching not 
usable as a PolicyRequirement.");
         }
 
@@ -58,8 +60,10 @@
                 return false;
 
             const char* s = getStringToMatch(attribute, index);
-            if (!s || !*s)
+            if (!s || !*s) {
+                m_log.warn("attribute (%s) missing scope", attribute.getId());
                 return false;
+            }
             auto_arrayptr<XMLCh> widestr(fromUTF8(s));
 
             const Scope* rule;
@@ -85,6 +89,7 @@
                 }
             }
 
+            m_log.warn("attribute (%s) invalid scope (%s)", attribute.getId(), 
s);
             return false;
         }
 
@@ -92,6 +97,8 @@
         virtual const char* getStringToMatch(const Attribute& attribute, 
size_t index) const = 0;
 
     private:
+        Category& m_log;
+
         bool matches(const Scope& rule, auto_arrayptr<XMLCh>& scope) const {
             const XMLCh* val = rule.getValue();
             if (val && *val) {
@@ -129,12 +136,12 @@
         }
     };
 
-    MatchFunctor* SHIBSP_DLLLOCAL 
AttributeScopeMatchesShibMDScopeFactory(const pair<const 
FilterPolicyContext*,const DOMElement*>& p, bool)
+    MatchFunctor* SHIBSP_DLLLOCAL 
AttributeScopeMatchesShibMDScopeFactory(const pair<const 
FilterPolicyContext*,const DOMElement*>&, bool)
     {
         return new AttributeScopeMatchesShibMDScopeFunctor();
     }
 
-    MatchFunctor* SHIBSP_DLLLOCAL 
AttributeValueMatchesShibMDScopeFactory(const pair<const 
FilterPolicyContext*,const DOMElement*>& p, bool)
+    MatchFunctor* SHIBSP_DLLLOCAL 
AttributeValueMatchesShibMDScopeFactory(const pair<const 
FilterPolicyContext*,const DOMElement*>&, bool)
     {
         return new AttributeValueMatchesShibMDScopeFunctor();
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/shibsp/impl/XMLSecurityPolicyProvider.cpp 
new/shibboleth-sp-3.4.0/shibsp/impl/XMLSecurityPolicyProvider.cpp
--- old/shibboleth-sp-3.3.0/shibsp/impl/XMLSecurityPolicyProvider.cpp   
2021-11-01 18:43:34.000000000 +0100
+++ new/shibboleth-sp-3.4.0/shibsp/impl/XMLSecurityPolicyProvider.cpp   
2022-10-19 14:16:08.000000000 +0200
@@ -268,7 +268,7 @@
             m_excludeDefaults = false;
         }
         else {
-            const DOMElement* alglist = XMLHelper::getLastChildElement(e, 
ExcludedAlgorithms);
+            alglist = XMLHelper::getLastChildElement(e, ExcludedAlgorithms);
             if (alglist) {
                 m_excludeDefaults = XMLHelper::getAttrBool(alglist, true, 
excludeDefaults);
                 if (alglist->hasChildNodes()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/shibsp/remoting/impl/SocketListener.cpp 
new/shibboleth-sp-3.4.0/shibsp/remoting/impl/SocketListener.cpp
--- old/shibboleth-sp-3.3.0/shibsp/remoting/impl/SocketListener.cpp     
2021-10-05 21:20:47.000000000 +0200
+++ new/shibboleth-sp-3.4.0/shibsp/remoting/impl/SocketListener.cpp     
2022-10-24 15:34:18.000000000 +0200
@@ -34,6 +34,9 @@
 #include <stack>
 #include <sstream>
 #include <boost/lexical_cast.hpp>
+#include <boost/algorithm/string.hpp>
+#include <boost/algorithm/string/classification.hpp>
+#include <boost/algorithm/string/split.hpp>
 #include <xercesc/sax/SAXException.hpp>
 #include <xercesc/util/XMLUniDefs.hpp>
 #include <xercesc/util/OutOfMemoryException.hpp>
@@ -223,6 +226,16 @@
     return true;
 }
 
+void SocketListener::set_retry_errors(const string& retry_errors)
+{
+    const char* error_list = retry_errors.c_str();
+    std::vector<string> string_list;
+    boost::split(string_list, error_list, boost::is_any_of(", \t"), 
boost::token_compress_on);
+    for (vector<string>::const_iterator i = string_list.begin(); i != 
string_list.end(); ++i) {
+        m_retry_errors.push_back(atoi(i->c_str()));
+    }
+}
+
 bool SocketListener::run(bool* shutdown)
 {
 #ifdef _DEBUG
@@ -325,31 +338,68 @@
         if (send(sock,(char*)&len,sizeof(len)) != sizeof(len) || 
send(sock,ostr.c_str(),outlen) != outlen) {
             log_error();
             this->close(sock);
-            if (retry)
+            if (retry) {
                 retry--;
+                log->debug("retrying failed send");
+            }
             else
                 throw ListenerException("Failure sending remoted message 
($1).", params(1,in.name()));
         }
         else {
             // SUCCESS.
+            log->debug("send completed, reading response message");
+
+            // Read the message size.
+            int size_read;
+            bool retry_error = false;
+            while ((size_read = recv(sock,(char*)&len,sizeof(len))) != 
sizeof(len)) {
+                // Apparently this happens when a signal interrupts the 
blocking call.
+                if (errno == EINTR) continue;
+
+                int native_error;
+                if (size_read == -1) {
+                    log_error("reading size of output message", &native_error);
+                }
+                else {
+                    log->error("error reading size of output message (%d != 
%d)", size_read, sizeof(len));
+                    native_error = 0;
+                }
+                this->close(sock);
+
+                if (std::find(m_retry_errors.begin(), m_retry_errors.end(), 
native_error) != m_retry_errors.end()) {
+                    log->debug("recv error %d is retryable", native_error);
+                    if (retry) {
+                        retry_error = true;
+                        retry--;
+                        break;
+                    }
+                    else {
+                        log->debug("not retrying on second failure");
+                    }
+                }
+                else {
+                      log->debug("recv error %d is not retryable", 
native_error);
+                }
+
+                throw ListenerException("Failure receiving response to remoted 
message ($1).", params(1,in.name()));
+            }
+
+            // If recv had retryable error restart loop and try again
+            if (retry_error) {
+                log->debug("retrying");
+                retry_error = false;
+                continue;
+            }
+
+            len = ntohl(len);
             retry = -1;
         }
     }
 
-    log->debug("send completed, reading response message");
-
     // Read the message.
-    while (recv(sock,(char*)&len,sizeof(len)) != sizeof(len)) {
-       if (errno == EINTR) continue;   // Apparently this happens when a 
signal interrupts the blocking call.
-        log->error("error reading size of output message");
-        this->close(sock);
-        throw ListenerException("Failure receiving response to remoted message 
($1).", params(1,in.name()));
-    }
-    len = ntohl(len);
-
     char buf[16384];
-    int size_read;
     stringstream is;
+    int size_read;
     while (len) {
        size_read = recv(sock, buf, sizeof(buf));
        if (size_read > 0) {
@@ -362,7 +412,7 @@
     }
 
     if (len) {
-        log->error("error reading output message from socket");
+        log_error("reading output message");
         this->close(sock);
         throw ListenerException("Failure receiving response to remoted message 
($1).", params(1,in.name()));
     }
@@ -395,7 +445,7 @@
     return out;
 }
 
-bool SocketListener::log_error(const char* fn) const
+bool SocketListener::log_error(const char* fn, int* native_error) const
 {
     if (!fn)
         fn = "unknown";
@@ -408,6 +458,8 @@
 #else
     int rc=errno;
 #endif
+    if (native_error != nullptr)
+        *native_error = rc;
     const char *msg;
 #ifdef HAVE_STRERROR_R
     char buf[256];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/shibsp/remoting/impl/SocketListener.h 
new/shibboleth-sp-3.4.0/shibsp/remoting/impl/SocketListener.h
--- old/shibboleth-sp-3.3.0/shibsp/remoting/impl/SocketListener.h       
2021-10-05 21:20:47.000000000 +0200
+++ new/shibboleth-sp-3.4.0/shibsp/remoting/impl/SocketListener.h       
2022-10-24 15:37:53.000000000 +0200
@@ -79,13 +79,16 @@
 
         bool m_catchAll;
     protected:
-        bool log_error(const char* fn=nullptr) const; // for OS-level errors
+        void set_retry_errors(const std::string& retry_errors);
+        bool log_error(const char* fn=nullptr, int* native_error=nullptr) 
const; // for OS-level errors
         xmltooling::logging::Category* log;
         /// @endcond
 
     private:
+
         boost::scoped_ptr<SocketPool> m_socketpool;
         bool* m_shutdown;
+        std::vector<int> m_retry_errors;
 
         // Manage child threads
         friend class ServerThread;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/shibsp/remoting/impl/TCPListener.cpp 
new/shibboleth-sp-3.4.0/shibsp/remoting/impl/TCPListener.cpp
--- old/shibboleth-sp-3.3.0/shibsp/remoting/impl/TCPListener.cpp        
2021-10-05 21:20:47.000000000 +0200
+++ new/shibboleth-sp-3.4.0/shibsp/remoting/impl/TCPListener.cpp        
2022-10-24 15:23:24.000000000 +0200
@@ -108,6 +108,7 @@
     static const XMLCh acl[] = UNICODE_LITERAL_3(a,c,l);
     static const XMLCh clientAddress[] = 
UNICODE_LITERAL_13(c,l,i,e,n,t,A,d,d,r,e,s,s);
     static const XMLCh clientPort[] = UNICODE_LITERAL_10(c,l,i,e,n,t,P,o,r,t);
+    static const XMLCh retryErrors[] = 
UNICODE_LITERAL_11(r,e,t,r,y,E,r,r,o,r,s);
 };
 
 TCPListener::TCPListener(const DOMElement* e) : SocketListener(e), m_port(0)
@@ -116,6 +117,17 @@
     if (SPConfig::getConfig().isEnabled(SPConfig::InProcess)) {
         m_address = XMLHelper::getAttrString(e, nullptr, clientAddress);
         m_port = XMLHelper::getAttrInt(e, 0, clientPort);
+        string retry_errors = XMLHelper::getAttrString(e, nullptr, 
retryErrors);
+        if (!retry_errors.empty()) {
+            if (retry_errors.find_first_not_of("0123456789, \t") == 
std::string::npos) {
+                log->info("retrying on error codes: %s", retry_errors.c_str());
+                set_retry_errors(retry_errors);
+            }
+            else {
+                log->error("invalid characters in retryErrors, skipping");
+            }
+
+        }
     }
 
     // Back-off to address setting, environment, or default.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/shibsp/shibsp.rc 
new/shibboleth-sp-3.4.0/shibsp/shibsp.rc
--- old/shibboleth-sp-3.3.0/shibsp/shibsp.rc    2021-11-19 15:11:07.000000000 
+0100
+++ new/shibboleth-sp-3.4.0/shibsp/shibsp.rc    2022-10-24 15:46:21.000000000 
+0200
@@ -53,35 +53,35 @@
 #endif
 #ifdef SHIBSP_LITE
 #ifdef _DEBUG
-            VALUE "InternalName", "shibsp-lite3_3D\0"
+            VALUE "InternalName", "shibsp-lite3_4D\0"
 #else
-            VALUE "InternalName", "shibsp-lite3_3\0"
+            VALUE "InternalName", "shibsp-lite3_4\0"
 #endif
 #else
 #ifdef _DEBUG
-            VALUE "InternalName", "shibsp3_3D\0"
+            VALUE "InternalName", "shibsp3_4D\0"
 #else
-            VALUE "InternalName", "shibsp3_3\0"
+            VALUE "InternalName", "shibsp3_4\0"
 #endif
 #endif
-            VALUE "LegalCopyright", "Copyright 2021 Various\0"
+            VALUE "LegalCopyright", "Copyright 2022 Various\0"
             VALUE "LegalTrademarks", "\0"
 #ifdef SHIBSP_LITE
 #ifdef _DEBUG
-            VALUE "OriginalFilename", "shibsp-lite3_3D.dll\0"
+            VALUE "OriginalFilename", "shibsp-lite3_4D.dll\0"
 #else
-            VALUE "OriginalFilename", "shibsp-lite3_3.dll\0"
+            VALUE "OriginalFilename", "shibsp-lite3_4.dll\0"
 #endif
 #else
 #ifdef _DEBUG
-            VALUE "OriginalFilename", "shibsp3_3D.dll\0"
+            VALUE "OriginalFilename", "shibsp3_4D.dll\0"
 #else
-            VALUE "OriginalFilename", "shibsp3_3.dll\0"
+            VALUE "OriginalFilename", "shibsp3_4.dll\0"
 #endif
 #endif
             VALUE "PrivateBuild", "\0"
-            VALUE "ProductName", "Shibboleth 3.3.0\0"
-            VALUE "ProductVersion", "3, 3, 0, 0\0"
+            VALUE "ProductName", "Shibboleth 3.4.0\0"
+            VALUE "ProductVersion", "3, 4, 0, 0\0"
             VALUE "SpecialBuild", "\0"
         END
     END
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/shibboleth-sp-3.3.0/shibsp/version.h 
new/shibboleth-sp-3.4.0/shibsp/version.h
--- old/shibboleth-sp-3.3.0/shibsp/version.h    2021-10-19 21:04:27.000000000 
+0200
+++ new/shibboleth-sp-3.4.0/shibsp/version.h    2022-10-24 15:45:30.000000000 
+0200
@@ -43,7 +43,7 @@
  */
 
 #define SHIBSP_VERSION_MAJOR 3
-#define SHIBSP_VERSION_MINOR 3
+#define SHIBSP_VERSION_MINOR 4
 #define SHIBSP_VERSION_REVISION 0
 
 /** DO NOT MODIFY BELOW THIS LINE */

Reply via email to