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 */