2
0
mirror of https://github.com/sudo-project/sudo.git synced 2025-08-28 21:07:55 +00:00

sudo 1.9.13

Document the changes to AIX plugins in docs/UPGRADE.md and regenerate
configure using the latest autoconf from git.
This commit is contained in:
Todd C. Miller 2022-12-26 10:47:51 -07:00
parent 702f21f7f6
commit f6e0e87ba9
8 changed files with 449 additions and 589 deletions

View File

@ -332,6 +332,17 @@ Defaults are listed in brackets after the description.
via the user's PATH) and the default libtool that comes via the user's PATH) and the default libtool that comes
with sudo. with sudo.
--with-aix-soname=svr4
Starting with version 1.9.13, sudo will build AIX-style
shared libraries and dynamic shared objects by default
instead of svr4-style.. This means that the default sudo
plugins are now .a (archive) files that contain a .so shared
object file instead of bare .so files. This was done to
improve compatibility with the AIX Freeware ecosystem,
specifically, the AIX Freeware build of OpenSSL. To restore
the old, pre-1.9.13 behavior, run configure using the
--with-aix-soname=svr4 option.
### Optional features: ### Optional features:
--disable-root-mailer --disable-root-mailer

76
NEWS
View File

@ -1,3 +1,79 @@
What's new in Sudo 1.9.13
* Fixed a bug running relative commands via sudo when "log_subcmds"
is enabled. GitHub issue #194.
* Fixed a signal handling bug when running sudo commands in a shell
script. Signals were not being forwarded to the command when
the sudo process was not run in its own process group.
* Fixed a bug in cvtsudoers' LDIF parsing when the file ends without
a newline and a backslash is the last character of the file.
* Fixed a compilation error on Linux/aarch64. GitHub issue #197.
* Fixed a potential use-after-free bug with cvtsudoers filtering.
GitHub issue #198.
* Added a reminder to the default lecture that the password will
not echo. This line is only displayed when the pwfeedback option
is disabled. GitHub issue #195.
* Fixed potential memory leaks in error paths. GitHub issues #199,
#202.
* Fixed potential NULL dereferences on memory allocation failure.
GitHub issues #204, #211.
* Sudo now uses C23-style attributes in function prototypes instead
of gcc-style attributes if supported.
* Fixed a potential crash introduced in the fix for GitHub issue #134.
If a user's sudoers entry did not have any RunAs user's set,
running "sudo -U otheruser -l" would dereference a NULL pointer.
* Added a new "list" pseudo-command in sudoers to allow a user to
list another user's privileges. Previously, only root or a user
with the ability to run any command as either root or the target
user on the current host could use the -U option. This also
includes a fix to the log entry when a user lacks permission to
run "sudo -U otheruser -l command". Previously, the logs would
indicate that the user tried to run the actual command, now the
log entry includes the list operation.
* JSON logging now escapes control characters if they happen to
appear in the command or environment.
* New Albanian translation from translationproject.org.
* Regular expressions in sudoers or logsrvd.conf may no longer
contain consecutive repetition operators. This is implementation-
specific behavior according to POSIX, but some implementations
will allocate excessive amounts of memory. This mainly affects
the fuzzers.
* Sudo now builds AIX-style shared libraries and dynamic shared
objects by default instead of svr4-style. This means that the
default sudo plugins are now .a (archive) files that contain a
.so shared object file instead of bare .so files. This was done
to improve compatibility with the AIX Freeware ecosystem,
specifically, the AIX Freeware build of OpenSSL. Sudo will still
load svr4-style .so plugins and if a .so file is requested,
either via sudo.conf or the sudoers file, and only the .a file
is present, sudo will convert the path from plugin.so to
plugin.a(plugin.so) when loading it. This ensures compatibility
with existing configurations. To restore the old, pre-1.9.13
behavior, run configure using the --with-aix-soname=svr4 option.
* Sudo no longer checks the ownership and mode of the plugins that
it loads. Plugins are configured via either the sudo.conf or
sudoers file which are trusted configuration files. These checks
suffered from time-of-check vs. time-of-use race conditions and
complicate loading plugins that are not simple paths. Ownership
and mode checks are still performed when loading the sudo.conf
and sudoers files, which do not suffer from race conditions.
The sudo.conf "developer_mode" setting is no longer used.
What's new in Sudo 1.9.12p1 What's new in Sudo 1.9.12p1
* Sudo's configure script now does a better job of detecting when * Sudo's configure script now does a better job of detecting when

View File

@ -319,7 +319,7 @@
/* Define to 1 if you have the 'freezero' function. */ /* Define to 1 if you have the 'freezero' function. */
#undef HAVE_FREEZERO #undef HAVE_FREEZERO
/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ /* Define to 1 if fseeko (and ftello) are declared in stdio.h. */
#undef HAVE_FSEEKO #undef HAVE_FSEEKO
/* Define to 1 if you have the 'fstatat' function. */ /* Define to 1 if you have the 'fstatat' function. */
@ -1350,11 +1350,15 @@
#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ #ifndef __STDC_WANT_IEC_60559_DFP_EXT__
# undef __STDC_WANT_IEC_60559_DFP_EXT__ # undef __STDC_WANT_IEC_60559_DFP_EXT__
#endif #endif
/* Enable extensions specified by C23 Annex F. */
#ifndef __STDC_WANT_IEC_60559_EXT__
# undef __STDC_WANT_IEC_60559_EXT__
#endif
/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ /* Enable extensions specified by ISO/IEC TS 18661-4:2015. */
#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
# undef __STDC_WANT_IEC_60559_FUNCS_EXT__ # undef __STDC_WANT_IEC_60559_FUNCS_EXT__
#endif #endif
/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ /* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */
#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
# undef __STDC_WANT_IEC_60559_TYPES_EXT__ # undef __STDC_WANT_IEC_60559_TYPES_EXT__
#endif #endif
@ -1383,18 +1387,17 @@
/* Number of bits in a file offset, on hosts where this is settable. */ /* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS #undef _FILE_OFFSET_BITS
/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ /* Define to 1 if necessary to make fseeko visible. */
#undef _LARGEFILE_SOURCE #undef _LARGEFILE_SOURCE
/* Define for large files, on AIX-style hosts. */ /* Define to 1 on platforms where this makes off_t a 64-bit type. */
#undef _LARGE_FILES #undef _LARGE_FILES
/* Number of bits in a timestamp, on hosts where this is settable. */ /* Number of bits in time_t, on hosts where this is settable. */
#undef _TIME_BITS #undef _TIME_BITS
#if !defined __MINGW_USE_VC2005_COMPAT && defined __MINGW32__ /* Define to 1 on platforms where this makes time_t a 64-bit type. */
# define __MINGW_USE_VC2005_COMPAT 1 /* For 64-bit time_t. */ #undef __MINGW_USE_VC2005_COMPAT
#endif
/* Define to __FUNCTION__ if your compiler supports __FUNCTION__ but not /* Define to __FUNCTION__ if your compiler supports __FUNCTION__ but not
__func__ */ __func__ */

773
configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.72a for sudo 1.9.12p1. # Generated by GNU Autoconf 2.72a for sudo 1.9.13.
# #
# Report bugs to <https://bugzilla.sudo.ws/>. # Report bugs to <https://bugzilla.sudo.ws/>.
# #
@ -614,8 +614,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='sudo' PACKAGE_NAME='sudo'
PACKAGE_TARNAME='sudo' PACKAGE_TARNAME='sudo'
PACKAGE_VERSION='1.9.12p1' PACKAGE_VERSION='1.9.13'
PACKAGE_STRING='sudo 1.9.12p1' PACKAGE_STRING='sudo 1.9.13'
PACKAGE_BUGREPORT='https://bugzilla.sudo.ws/' PACKAGE_BUGREPORT='https://bugzilla.sudo.ws/'
PACKAGE_URL='' PACKAGE_URL=''
@ -655,6 +655,8 @@ ac_includes_default="\
ac_header_c_list= ac_header_c_list=
ac_func_c_list= ac_func_c_list=
ac_c_werror_flag= ac_c_werror_flag=
enable_year2038=yes
enable_largefile=yes
ac_subst_vars='LTLIBOBJS ac_subst_vars='LTLIBOBJS
KRB5CONFIG KRB5CONFIG
LIBOBJS LIBOBJS
@ -1059,11 +1061,11 @@ enable_intercept
with_noexec with_noexec
with_netsvc with_netsvc
enable_sia enable_sia
enable_largefile
enable_year2038
with_pam_login with_pam_login
enable_pam_session enable_pam_session
enable_kerb5_instance enable_kerb5_instance
enable_year2038
enable_largefile
' '
ac_precious_vars='SENDMAILPROG ac_precious_vars='SENDMAILPROG
VIPROG VIPROG
@ -1633,7 +1635,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
'configure' configures sudo 1.9.12p1 to adapt to many kinds of systems. 'configure' configures sudo 1.9.13 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1670,7 +1672,7 @@ Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin] --bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin] --sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec] --libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [/etc] --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var] --localstatedir=DIR modifiable single-machine data [PREFIX/var]
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
@ -1699,7 +1701,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of sudo 1.9.12p1:";; short | recursive ) echo "Configuration of sudo 1.9.13:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1773,11 +1775,11 @@ Optional Features:
--disable-libtool-lock avoid locking (might break parallel builds) --disable-libtool-lock avoid locking (might break parallel builds)
--enable-intercept fully qualified pathname of sudo_intercept.so --enable-intercept fully qualified pathname of sudo_intercept.so
--disable-sia Disable SIA on Digital UNIX --disable-sia Disable SIA on Digital UNIX
--disable-largefile omit support for large files
--disable-year2038 omit support for timestamps past the year 2038
--disable-pam-session Disable PAM session support --disable-pam-session Disable PAM session support
--enable-kerb5-instance instance string to append to the username (separated --enable-kerb5-instance instance string to append to the username (separated
by a slash) by a slash)
--disable-year2038 do not support timestamps after 2038
--disable-largefile omit support for large files
Optional Packages: Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@ -1990,7 +1992,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
sudo configure 1.9.12p1 sudo configure 1.9.13
generated by GNU Autoconf 2.72a generated by GNU Autoconf 2.72a
Copyright (C) 2022 Free Software Foundation, Inc. Copyright (C) 2022 Free Software Foundation, Inc.
@ -2668,7 +2670,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by sudo $as_me 1.9.12p1, which was It was created by sudo $as_me 1.9.13, which was
generated by GNU Autoconf 2.72a. Invocation command line was generated by GNU Autoconf 2.72a. Invocation command line was
$ $0$ac_configure_args_raw $ $0$ac_configure_args_raw
@ -4877,6 +4879,8 @@ printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
@ -19510,7 +19514,7 @@ main (void)
/* Refer to every declared value, so they cannot be /* Refer to every declared value, so they cannot be
discarded as unused. */ discarded as unused. */
return (!b + !c + !d + !e + !f + !g + !h + !i + !j + !k return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !j + !k
+ !l + !m + !n + !o + !p + !pp + !ps); + !l + !m + !n + !o + !p + !pp + !ps);
; ;
@ -19628,26 +19632,21 @@ done
# #
# Check for large file and 64-bit time support. # Check for large file and 64-bit time support.
# #
# Check whether --enable-largefile was given. if test "$enable_largefile" != no
if test ${enable_largefile+y}
then : then :
enableval=$enable_largefile; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable large file support" >&5
fi printf %s "checking for $CC option to enable large file support... " >&6; }
if test ${ac_cv_sys_largefile_opts+y}
if test "$enable_largefile" != no
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
printf %s "checking for special C compiler options needed for large files... " >&6; }
if test ${ac_cv_sys_largefile_CC+y}
then : then :
printf %s "(cached) " >&6 printf %s "(cached) " >&6
else case e in #( else case e in #(
e) ac_cv_sys_largefile_CC=no e) ac_save_CC="$CC"
if test "$GCC" != yes; then ac_opt_found=no
ac_save_CC=$CC for ac_opt in "none needed" "-D_FILE_OFFSET_BITS=64" "-D_LARGE_FILES=1" "-n32"; do
while :; do if test x"$ac_opt" != x"none needed"
# IRIX 6.2 and later do not support large files by default, then :
# so use the C compiler's -n32 option if that helps. CC="$ac_save_CC $ac_opt"
fi
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
#include <sys/types.h> #include <sys/types.h>
@ -19667,451 +19666,156 @@ main (void)
return 0; return 0;
} }
_ACEOF _ACEOF
if ac_fn_c_try_compile "$LINENO" if ac_fn_c_try_compile "$LINENO"
then : then :
break ac_cv_sys_largefile_opts="$ac_opt"
ac_opt_found=yes
fi fi
rm -f core conftest.err conftest.$ac_objext conftest.beam rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
CC="$CC -n32" test $ac_opt_found = no || break
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_sys_largefile_CC=' -n32'; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
break
done done
CC=$ac_save_CC CC="$ac_save_CC"
rm -f conftest.$ac_ext test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected" ;;
fi ;;
esac esac
fi fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_opts" >&5
printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; } printf "%s\n" "$ac_cv_sys_largefile_opts" >&6; }
if test "$ac_cv_sys_largefile_CC" != no; then
CC=$CC$ac_cv_sys_largefile_CC
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 ac_have_largefile=yes
printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } case $ac_cv_sys_largefile_opts in #(
if test ${ac_cv_sys_file_offset_bits+y} "none needed") :
then : ;; #(
printf %s "(cached) " >&6 "support not detected") :
else case e in #( ac_have_largefile=no ;; #(
e) while :; do "-D_FILE_OFFSET_BITS=64") :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
/* Check that off_t can represent 2**63 - 1 correctly.
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
int
main (void)
{
; printf "%s\n" "#define _FILE_OFFSET_BITS 64" >>confdefs.h
return 0; ;; #(
} "-D_LARGE_FILES=1") :
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_sys_file_offset_bits=no; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#undef _FILE_OFFSET_BITS
#define _FILE_OFFSET_BITS 64
#include <sys/types.h>
/* Check that off_t can represent 2**63 - 1 correctly.
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
int
main (void)
{
; printf "%s\n" "#define _LARGE_FILES 1" >>confdefs.h
return 0; ;; #(
} "-n32") :
_ACEOF CC="$CC -n32" ;; #(
if ac_fn_c_try_compile "$LINENO" *) :
then : as_fn_error $? "internal error: bad value for \$ac_cv_sys_largefile_opts" "$LINENO" 5 ;;
ac_cv_sys_file_offset_bits=64; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_sys_file_offset_bits=unknown
break
done ;;
esac esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; }
case $ac_cv_sys_file_offset_bits in #(
no | unknown) ;;
*)
printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h
;;
esac
rm -rf conftest*
case $ac_cv_sys_file_offset_bits in #(
unknown) :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
printf %s "checking for _LARGE_FILES value needed for large files... " >&6; }
if test ${ac_cv_sys_large_files+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) while :; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
/* Check that off_t can represent 2**63 - 1 correctly.
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_sys_large_files=no; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#undef _LARGE_FILES
#define _LARGE_FILES 1
#include <sys/types.h>
/* Check that off_t can represent 2**63 - 1 correctly.
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_sys_large_files=1; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_sys_large_files=unknown
break
done ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
printf "%s\n" "$ac_cv_sys_large_files" >&6; }
case $ac_cv_sys_large_files in #(
no | unknown) ;;
*)
printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h
;;
esac
rm -rf conftest* ;; #(
64) :
# Check whether --enable-year2038 was given.
if test ${enable_year2038+y}
then :
enableval=$enable_year2038;
fi
if test "$enable_year2038" != no if test "$enable_year2038" != no
then : then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable timestamps after Jan 2038" >&5
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for time_t past the year 2038" >&5 printf %s "checking for $CC option to enable timestamps after Jan 2038... " >&6; }
printf %s "checking for time_t past the year 2038... " >&6; } if test ${ac_cv_sys_year2038_opts+y}
if test ${ac_cv_type_time_t_y2038+y}
then : then :
printf %s "(cached) " >&6 printf %s "(cached) " >&6
else case e in #( else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext e) ac_save_CPPFLAGS="$CPPFLAGS"
/* end confdefs.h. */ ac_opt_found=no
for ac_opt in "none needed" "-D_TIME_BITS=64" "-D__MINGW_USE_VC2005_COMPAT" "-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"; do
#include <time.h> if test x"$ac_opt" != x"none needed"
/* Check that time_t can represent 2**32 - 1 correctly. */
#define LARGE_TIME_T \\
((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30)))
int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535
&& LARGE_TIME_T % 65537 == 0)
? 1 : -1];
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then : then :
ac_cv_type_time_t_y2038=yes CPPFLAGS="$ac_save_CPPFLAGS $ac_opt"
else case e in #(
e) ac_cv_type_time_t_y2038=no ;;
esac
fi fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_time_t_y2038" >&5
printf "%s\n" "$ac_cv_type_time_t_y2038" >&6; }
if test "$ac_cv_type_time_t_y2038" = no; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit time_t with _TIME_BITS=64" >&5
printf %s "checking for 64-bit time_t with _TIME_BITS=64... " >&6; }
if test ${ac_cv_type_time_t_bits_macro+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define _TIME_BITS 64
#define _FILE_OFFSET_BITS 64
#include <time.h>
/* Check that time_t can represent 2**32 - 1 correctly. */
#define LARGE_TIME_T \\
((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30)))
int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535
&& LARGE_TIME_T % 65537 == 0)
? 1 : -1];
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_type_time_t_bits_macro=yes
else case e in #(
e) ac_cv_type_time_t_bits_macro=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_time_t_bits_macro" >&5
printf "%s\n" "$ac_cv_type_time_t_bits_macro" >&6; }
if test "$ac_cv_type_time_t_bits_macro" = yes; then
printf "%s\n" "#define _TIME_BITS 64" >>confdefs.h
printf "%s\n" "#define _FILE_OFFSET_BITS 64" >>confdefs.h
ac_cv_type_time_t_y2038=yes
fi
fi
if test $ac_cv_type_time_t_y2038 = no; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
#ifdef _USE_32BIT_TIME_T
int ok;
#else
error fail
#endif
#include <time.h>
/* Check that time_t can represent 2**32 - 1 correctly. */
#define LARGE_TIME_T \\
((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30)))
int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535
&& LARGE_TIME_T % 65537 == 0)
? 1 : -1];
int
main (void)
{
;
return 0;
}
_ACEOF _ACEOF
if ac_fn_c_try_compile "$LINENO" if ac_fn_c_try_compile "$LINENO"
then : then :
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ac_cv_sys_year2038_opts="$ac_opt"
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ac_opt_found=yes
as_fn_error $? "The 'time_t' type stops working after January 2038.
Remove _USE_32BIT_TIME_T from the compiler flags.
See 'config.log' for more details" "$LINENO" 5; }
else case e in #(
e) # If not cross-compiling and says we should check,
# and 'touch' works with a large timestamp, then evidently wider time_t
# is desired and supported, so fail and ask the builder to fix the
# problem. Otherwise, just warn the builder.
if test "$ac_warned_about_y2038" != yes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: The 'time_t' type stops working after January 2038,
and this package needs a wider 'time_t' type
if there is any way to access timestamps after that.
Configure with 'CC=\"${CC} -m64\"' perhaps?" >&5
printf "%s\n" "$as_me: WARNING: The 'time_t' type stops working after January 2038,
and this package needs a wider 'time_t' type
if there is any way to access timestamps after that.
Configure with 'CC=\"${CC} -m64\"' perhaps?" >&2;}
ac_warned_about_y2038=yes
fi
;;
esac
fi fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi test $ac_opt_found = no || break
done
CPPFLAGS="$ac_save_CPPFLAGS"
test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected" ;;
esac
fi fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_year2038_opts" >&5
printf "%s\n" "$ac_cv_sys_year2038_opts" >&6; }
ac_have_year2038=yes
case $ac_cv_sys_year2038_opts in #(
"none needed") :
;; #( ;; #(
"support not detected") :
ac_have_year2038=no
case $enable_year2038 in #(
yes) :
# If we're not cross compiling and 'touch' works with a large
# timestamp, then we can presume the system supports wider time_t
# *somehow* and we just weren't able to detect it. One common
# case that we deliberately *don't* probe for is a system that
# supports both 32- and 64-bit ABIs but only the 64-bit ABI offers
# wide time_t. (It would be inappropriate for us to override an
# intentional use of -m32.) Error out, demanding use of
# --disable-year2038 if this is intentional.
if test $cross_compiling = no
then :
if TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null
then :
case `TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null` in #(
*'Feb 7 2106'* | *'Feb 7 17:10'*) :
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "this system appears to support timestamps after
January 2038, but no mechanism for enabling wide
'time_t' was detected. Did you mean to build a 64-bit
binary? (e.g. 'CC=\"${CC} -m64\"'.) To proceed with
32-bit time_t, configure with '--disable-year2038'.
See 'config.log' for more details" "$LINENO" 5; } ;; #(
*) : *) :
;; ;;
esac esac
fi fi
fi ;; #(
*) :
# Check whether --enable-year2038 was given.
if test ${enable_year2038+y}
then :
enableval=$enable_year2038;
fi
if test "$enable_year2038" != no
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for time_t past the year 2038" >&5
printf %s "checking for time_t past the year 2038... " >&6; }
if test ${ac_cv_type_time_t_y2038+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <time.h>
/* Check that time_t can represent 2**32 - 1 correctly. */
#define LARGE_TIME_T \\
((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30)))
int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535
&& LARGE_TIME_T % 65537 == 0)
? 1 : -1];
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_type_time_t_y2038=yes
else case e in #(
e) ac_cv_type_time_t_y2038=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
;; ;;
esac esac ;; #(
fi "-D_TIME_BITS=64") :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_time_t_y2038" >&5
printf "%s\n" "$ac_cv_type_time_t_y2038" >&6; }
if test "$ac_cv_type_time_t_y2038" = no; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit time_t with _TIME_BITS=64" >&5
printf %s "checking for 64-bit time_t with _TIME_BITS=64... " >&6; }
if test ${ac_cv_type_time_t_bits_macro+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define _TIME_BITS 64
#define _FILE_OFFSET_BITS 64
#include <time.h>
/* Check that time_t can represent 2**32 - 1 correctly. */
#define LARGE_TIME_T \\
((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30)))
int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535
&& LARGE_TIME_T % 65537 == 0)
? 1 : -1];
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_type_time_t_bits_macro=yes
else case e in #(
e) ac_cv_type_time_t_bits_macro=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_time_t_bits_macro" >&5
printf "%s\n" "$ac_cv_type_time_t_bits_macro" >&6; }
if test "$ac_cv_type_time_t_bits_macro" = yes; then
printf "%s\n" "#define _TIME_BITS 64" >>confdefs.h printf "%s\n" "#define _TIME_BITS 64" >>confdefs.h
;; #(
"-D__MINGW_USE_VC2005_COMPAT=1") :
printf "%s\n" "#define __MINGW_USE_VC2005_COMPAT 1" >>confdefs.h
printf "%s\n" "#define _FILE_OFFSET_BITS 64" >>confdefs.h ;; #(
"-U_USE_32_BIT_TIME_T"*) :
ac_cv_type_time_t_y2038=yes
fi
fi
if test $ac_cv_type_time_t_y2038 = no; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef _USE_32BIT_TIME_T
int ok;
#else
error fail
#endif
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The 'time_t' type stops working after January 2038. as_fn_error $? "the 'time_t' type is currently forced to be 32-bit. It
Remove _USE_32BIT_TIME_T from the compiler flags. will stop working after January 2038. Remove
See 'config.log' for more details" "$LINENO" 5; } _USE_32BIT_TIME_T from the compiler flags.
else case e in #( See 'config.log' for more details" "$LINENO" 5; } ;; #(
e) # If not cross-compiling and require-year2038-safe says we should check, *) :
# and 'touch' works with a large timestamp, then evidently wider time_t as_fn_error $? "internal error: bad value for \$ac_cv_sys_year2038_opts" "$LINENO" 5 ;;
# is desired and supported, so fail and ask the builder to fix the
# problem. Otherwise, just warn the builder.
if test $cross_compiling = no \
&& TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null; then
case `TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null` in
*'Feb 7 2106'* | *'Feb 7 17:10'*)
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The 'time_t' type stops working after January 2038,
and your system appears to support a wider 'time_t'.
Try configuring with 'CC=\"${CC} -m64\"'.
To build with a 32-bit time_t anyway (not recommended),
configure with '--disable-year2038'.
See 'config.log' for more details" "$LINENO" 5; };;
esac
rm -f conftest.time
fi
if test "$ac_warned_about_y2038" != yes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: The 'time_t' type stops working after January 2038,
and this package needs a wider 'time_t' type
if there is any way to access timestamps after that.
Configure with 'CC=\"${CC} -m64\"' perhaps?" >&5
printf "%s\n" "$as_me: WARNING: The 'time_t' type stops working after January 2038,
and this package needs a wider 'time_t' type
if there is any way to access timestamps after that.
Configure with 'CC=\"${CC} -m64\"' perhaps?" >&2;}
ac_warned_about_y2038=yes
fi
;;
esac esac
fi fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi fi
# #
# HP-UX may need to define _XOPEN_SOURCE_EXTENDED to expose MSG_WAITALL. # HP-UX may need to define _XOPEN_SOURCE_EXTENDED to expose MSG_WAITALL.
# Also, HP-UX 11.23 has a broken sys/types.h when large files support # Also, HP-UX 11.23 has a broken sys/types.h when large files support
@ -21761,87 +21465,98 @@ printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h
esac esac
LIBS=$ac_save_LIBS LIBS=$ac_save_LIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for declarations of fseeko and ftello" >&5
printf %s "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; } printf %s "checking for declarations of fseeko and ftello... " >&6; }
if test ${ac_cv_sys_largefile_source+y} if test ${ac_cv_func_fseeko_ftello+y}
then : then :
printf %s "(cached) " >&6 printf %s "(cached) " >&6
else case e in #( else case e in #(
e) while :; do e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
#if defined __hpux && !defined _LARGEFILE_SOURCE
#include <limits.h>
#if LONG_MAX >> 31 == 0
#error "32-bit HP-UX 11/ia64 needs _LARGEFILE_SOURCE for fseeko in C++"
#endif
#endif
#include <sys/types.h> /* for off_t */
#include <stdio.h>
int
main (void)
{
int (*fp) (FILE *, off_t, int) = fseeko;
return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_sys_largefile_source=no; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#undef _LARGEFILE_SOURCE
#define _LARGEFILE_SOURCE 1
#if defined __hpux && !defined _LARGEFILE_SOURCE
#include <limits.h>
#if LONG_MAX >> 31 == 0
#error "32-bit HP-UX 11/ia64 needs _LARGEFILE_SOURCE for fseeko in C++"
#endif
#endif
#include <sys/types.h> /* for off_t */
#include <stdio.h>
int
main (void)
{
int (*fp) (FILE *, off_t, int) = fseeko;
return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_sys_largefile_source=1; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
ac_cv_sys_largefile_source=unknown
break
done ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5
printf "%s\n" "$ac_cv_sys_largefile_source" >&6; }
case $ac_cv_sys_largefile_source in #(
no | unknown) ;;
*)
printf "%s\n" "#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source" >>confdefs.h
;;
esac
rm -rf conftest*
# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug #if defined __hpux && !defined _LARGEFILE_SOURCE
# in glibc 2.1.3, but that breaks too many other things. # include <limits.h>
# If you want fseeko and ftello with glibc, upgrade to a fixed glibc. # if LONG_MAX >> 31 == 0
if test $ac_cv_sys_largefile_source != unknown; then # error "32-bit HP-UX 11/ia64 needs _LARGEFILE_SOURCE for fseeko in C++"
# endif
#endif
#include <sys/types.h> /* for off_t */
#include <stdio.h>
int
main (void)
{
int (*fp1) (FILE *, off_t, int) = fseeko;
off_t (*fp2) (FILE *) = ftello;
return fseeko (stdin, 0, 0)
&& fp1 (stdin, 0, 0)
&& ftello (stdin) >= 0
&& fp2 (stdin) >= 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_func_fseeko_ftello=yes
else case e in #(
e) ac_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE=1"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if defined __hpux && !defined _LARGEFILE_SOURCE
# include <limits.h>
# if LONG_MAX >> 31 == 0
# error "32-bit HP-UX 11/ia64 needs _LARGEFILE_SOURCE for fseeko in C++"
# endif
#endif
#include <sys/types.h> /* for off_t */
#include <stdio.h>
int
main (void)
{
int (*fp1) (FILE *, off_t, int) = fseeko;
off_t (*fp2) (FILE *) = ftello;
return fseeko (stdin, 0, 0)
&& fp1 (stdin, 0, 0)
&& ftello (stdin) >= 0
&& fp2 (stdin) >= 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_func_fseeko_ftello="need _LARGEFILE_SOURCE"
else case e in #(
e) ac_cv_func_fseeko_ftello=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fseeko_ftello" >&5
printf "%s\n" "$ac_cv_func_fseeko_ftello" >&6; }
if test "$ac_cv_func_fseeko_ftello" != no
then :
printf "%s\n" "#define HAVE_FSEEKO 1" >>confdefs.h printf "%s\n" "#define HAVE_FSEEKO 1" >>confdefs.h
fi
if test "$ac_cv_func_fseeko_ftello" = "need _LARGEFILE_SOURCE"
then :
printf "%s\n" "#define _LARGEFILE_SOURCE 1" >>confdefs.h
fi fi
ac_func= ac_func=
@ -24488,7 +24203,7 @@ fi
libssl="`$PKG_CONFIG --libs-only-l $pkg_openssl | sed 's/^ *-l//'`" libssl="`$PKG_CONFIG --libs-only-l $pkg_openssl | sed 's/^ *-l//'`"
libssl_extra="`echo $libssl | sed 's/^[^ ]* *//'`" libssl_extra="`echo $libssl | sed 's/^[^ ]* *//'`"
libssl="`echo $libssl | sed 's/ .*//'`" libssl="`echo $libssl | sed 's/ .*//'`"
as_ac_Lib=`printf "%s\n" "ac_cv_lib_$libssl""_SSL_new$libssl_extra" | sed "$as_sed_sh"` as_ac_Lib=`printf "%s\n" "ac_cv_lib_$libssl""_SSL_new" | sed "$as_sed_sh"`
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SSL_new in -l$libssl" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SSL_new in -l$libssl" >&5
printf %s "checking for SSL_new in -l$libssl... " >&6; } printf %s "checking for SSL_new in -l$libssl... " >&6; }
if eval test \${$as_ac_Lib+y} if eval test \${$as_ac_Lib+y}
@ -24711,7 +24426,7 @@ fi
;; ;;
esac esac
done done
as_ac_Lib=`printf "%s\n" "ac_cv_lib_$libcrypto""_EVP_MD_CTX_new$libcrypto_extra" | sed "$as_sed_sh"` as_ac_Lib=`printf "%s\n" "ac_cv_lib_$libcrypto""_EVP_MD_CTX_new" | sed "$as_sed_sh"`
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EVP_MD_CTX_new in -l$libcrypto" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EVP_MD_CTX_new in -l$libcrypto" >&5
printf %s "checking for EVP_MD_CTX_new in -l$libcrypto... " >&6; } printf %s "checking for EVP_MD_CTX_new in -l$libcrypto... " >&6; }
if eval test \${$as_ac_Lib+y} if eval test \${$as_ac_Lib+y}
@ -24999,7 +24714,7 @@ fi
fi fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SSL_new in -lssl" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SSL_new in -lssl" >&5
printf %s "checking for SSL_new in -lssl... " >&6; } printf %s "checking for SSL_new in -lssl... " >&6; }
if test ${ac_cv_lib_ssl_SSL_new_lcrypto+y} if test ${ac_cv_lib_ssl_SSL_new+y}
then : then :
printf %s "(cached) " >&6 printf %s "(cached) " >&6
else case e in #( else case e in #(
@ -25028,9 +24743,9 @@ return SSL_new ();
_ACEOF _ACEOF
if ac_fn_c_try_link "$LINENO" if ac_fn_c_try_link "$LINENO"
then : then :
ac_cv_lib_ssl_SSL_new_lcrypto=yes ac_cv_lib_ssl_SSL_new=yes
else case e in #( else case e in #(
e) ac_cv_lib_ssl_SSL_new_lcrypto=no ;; e) ac_cv_lib_ssl_SSL_new=no ;;
esac esac
fi fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \ rm -f core conftest.err conftest.$ac_objext conftest.beam \
@ -25038,9 +24753,9 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
LIBS=$ac_check_lib_save_LIBS ;; LIBS=$ac_check_lib_save_LIBS ;;
esac esac
fi fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_new_lcrypto" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_new" >&5
printf "%s\n" "$ac_cv_lib_ssl_SSL_new_lcrypto" >&6; } printf "%s\n" "$ac_cv_lib_ssl_SSL_new" >&6; }
if test "x$ac_cv_lib_ssl_SSL_new_lcrypto" = xyes if test "x$ac_cv_lib_ssl_SSL_new" = xyes
then : then :
# Check OPENSSL_VERSION_NUMBER in headers # Check OPENSSL_VERSION_NUMBER in headers
@ -25434,7 +25149,7 @@ fi
libssl="`$PKG_CONFIG --libs-only-l wolfssl | sed 's/^ *-l//'`" libssl="`$PKG_CONFIG --libs-only-l wolfssl | sed 's/^ *-l//'`"
libssl_extra=`echo $libssl | sed 's/^[^ ]* *//'` libssl_extra=`echo $libssl | sed 's/^[^ ]* *//'`
libssl=`echo $libssl | sed 's/ .*//'` libssl=`echo $libssl | sed 's/ .*//'`
as_ac_Lib=`printf "%s\n" "ac_cv_lib_$libssl""_wolfSSL_new$libssl_extra" | sed "$as_sed_sh"` as_ac_Lib=`printf "%s\n" "ac_cv_lib_$libssl""_wolfSSL_new" | sed "$as_sed_sh"`
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wolfSSL_new in -l$libssl" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wolfSSL_new in -l$libssl" >&5
printf %s "checking for wolfSSL_new in -l$libssl... " >&6; } printf %s "checking for wolfSSL_new in -l$libssl... " >&6; }
if eval test \${$as_ac_Lib+y} if eval test \${$as_ac_Lib+y}
@ -28260,10 +27975,9 @@ if test ${with_pam-"no"} != "no"; then
# Check for pam_start() in libpam first, then for pam_appl.h. # Check for pam_start() in libpam first, then for pam_appl.h.
# #
found_pam_lib=no found_pam_lib=no
as_ac_Lib=`printf "%s\n" "ac_cv_lib_pam_pam_start$lt_cv_dlopen_libs" | sed "$as_sed_sh"` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pam_start in -lpam" >&5
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pam_start in -lpam" >&5
printf %s "checking for pam_start in -lpam... " >&6; } printf %s "checking for pam_start in -lpam... " >&6; }
if eval test \${$as_ac_Lib+y} if test ${ac_cv_lib_pam_pam_start+y}
then : then :
printf %s "(cached) " >&6 printf %s "(cached) " >&6
else case e in #( else case e in #(
@ -28292,9 +28006,9 @@ return pam_start ();
_ACEOF _ACEOF
if ac_fn_c_try_link "$LINENO" if ac_fn_c_try_link "$LINENO"
then : then :
eval "$as_ac_Lib=yes" ac_cv_lib_pam_pam_start=yes
else case e in #( else case e in #(
e) eval "$as_ac_Lib=no" ;; e) ac_cv_lib_pam_pam_start=no ;;
esac esac
fi fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \ rm -f core conftest.err conftest.$ac_objext conftest.beam \
@ -28302,10 +28016,9 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
LIBS=$ac_check_lib_save_LIBS ;; LIBS=$ac_check_lib_save_LIBS ;;
esac esac
fi fi
eval ac_res=\$$as_ac_Lib { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pam_pam_start" >&5
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_cv_lib_pam_pam_start" >&6; }
printf "%s\n" "$ac_res" >&6; } if test "x$ac_cv_lib_pam_pam_start" = xyes
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then : then :
found_pam_lib=yes found_pam_lib=yes
fi fi
@ -34737,6 +34450,18 @@ LIBOBJS=$ac_libobjs
LTLIBOBJS=$ac_ltlibobjs LTLIBOBJS=$ac_ltlibobjs
# Check whether --enable-year2038 was given.
if test ${enable_year2038+y}
then :
enableval=$enable_year2038;
fi
# Check whether --enable-largefile was given.
if test ${enable_largefile+y}
then :
enableval=$enable_largefile;
fi
: "${CONFIG_STATUS=./config.status}" : "${CONFIG_STATUS=./config.status}"
ac_write_fail=0 ac_write_fail=0
@ -35130,7 +34855,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by sudo $as_me 1.9.12p1, which was This file was extended by sudo $as_me 1.9.13, which was
generated by GNU Autoconf 2.72a. Invocation command line was generated by GNU Autoconf 2.72a. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -35198,7 +34923,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped' ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\ ac_cs_version="\\
sudo config.status 1.9.12p1 sudo config.status 1.9.13
configured by $0, generated by GNU Autoconf 2.72a, configured by $0, generated by GNU Autoconf 2.72a,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View File

@ -18,7 +18,7 @@ dnl ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
dnl dnl
AC_PREREQ([2.70]) AC_PREREQ([2.70])
AC_INIT([sudo], [1.9.12p1], [https://bugzilla.sudo.ws/], [sudo]) AC_INIT([sudo], [1.9.13], [https://bugzilla.sudo.ws/], [sudo])
AC_CONFIG_HEADERS([config.h pathnames.h]) AC_CONFIG_HEADERS([config.h pathnames.h])
AC_CONFIG_SRCDIR([src/sudo.c]) AC_CONFIG_SRCDIR([src/sudo.c])
AC_CONFIG_AUX_DIR([scripts]) AC_CONFIG_AUX_DIR([scripts])

View File

@ -1,6 +1,25 @@
Notes on upgrading from an older release Notes on upgrading from an older release
======================================== ========================================
* Upgrading from a version prior to 1.9.13:
Sudo now builds AIX-style shared libraries and dynamic shared
objects by default instead of svr4-style. This means that the
default sudo plugins are now .a (archive) files that contain a
.so shared object file instead of bare .so files. This was done
to improve compatibility with the AIX Freeware ecosystem,
specifically, the AIX Freeware build of OpenSSL. When loading
a .a file as a plugin the name of the included .so file must
also be specified, for example /usr/libexec/sudo/sudoers.a(sudoers.so).
Sudo is still capable of loading svr4-style .so plugins and if
a .so file is requested, either via sudo.conf or the sudoers
file, and only the .a file is present, sudo will convert the
path from plugin.so to plugin.a(plugin.so). This ensures
compatibility with existing configurations. To restore the old,
pre-1.9.13 behavior, run configure using the --with-aix-soname=svr4
option.
* Upgrading from a version prior to 1.9.10: * Upgrading from a version prior to 1.9.10:
Sudo now interprets a command line argument in sudoers that Sudo now interprets a command line argument in sudoers that

48
scripts/config.guess vendored
View File

@ -1,14 +1,14 @@
#! /bin/sh #! /bin/sh
# Attempt to guess a canonical system name. # Attempt to guess a canonical system name.
# Copyright 1992-2021 Free Software Foundation, Inc. # Copyright 1992-2022 Free Software Foundation, Inc.
# shellcheck disable=SC2006,SC2268 # see below for rationale # shellcheck disable=SC2006,SC2268 # see below for rationale
timestamp='2021-06-03' timestamp='2022-05-25'
# This file is free software; you can redistribute it and/or modify it # This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by # under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or # the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version. # (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, but # This program is distributed in the hope that it will be useful, but
@ -60,7 +60,7 @@ version="\
GNU config.guess ($timestamp) GNU config.guess ($timestamp)
Originally written by Per Bothner. Originally written by Per Bothner.
Copyright 1992-2021 Free Software Foundation, Inc. Copyright 1992-2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@ -437,7 +437,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
# This test works for both compilers. # This test works for both compilers.
if test "$CC_FOR_BUILD" != no_compiler_found; then if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null grep IS_64BIT_ARCH >/dev/null
then then
SUN_ARCH=x86_64 SUN_ARCH=x86_64
@ -929,6 +929,9 @@ EOF
i*:PW*:*) i*:PW*:*)
GUESS=$UNAME_MACHINE-pc-pw32 GUESS=$UNAME_MACHINE-pc-pw32
;; ;;
*:SerenityOS:*:*)
GUESS=$UNAME_MACHINE-pc-serenity
;;
*:Interix*:*) *:Interix*:*)
case $UNAME_MACHINE in case $UNAME_MACHINE in
x86) x86)
@ -1148,16 +1151,27 @@ EOF
;; ;;
x86_64:Linux:*:*) x86_64:Linux:*:*)
set_cc_for_build set_cc_for_build
CPU=$UNAME_MACHINE
LIBCABI=$LIBC LIBCABI=$LIBC
if test "$CC_FOR_BUILD" != no_compiler_found; then if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ ABI=64
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ sed 's/^ //' << EOF > "$dummy.c"
grep IS_X32 >/dev/null #ifdef __i386__
then ABI=x86
LIBCABI=${LIBC}x32 #else
#ifdef __ILP32__
ABI=x32
#endif
#endif
EOF
cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
eval "$cc_set_abi"
case $ABI in
x86) CPU=i686 ;;
x32) LIBCABI=${LIBC}x32 ;;
esac
fi fi
fi GUESS=$CPU-pc-linux-$LIBCABI
GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
;; ;;
xtensa*:Linux:*:*) xtensa*:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
@ -1364,8 +1378,11 @@ EOF
BePC:Haiku:*:*) # Haiku running on Intel PC compatible. BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
GUESS=i586-pc-haiku GUESS=i586-pc-haiku
;; ;;
x86_64:Haiku:*:*) ppc:Haiku:*:*) # Haiku running on Apple PowerPC
GUESS=x86_64-unknown-haiku GUESS=powerpc-apple-haiku
;;
*:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat)
GUESS=$UNAME_MACHINE-unknown-haiku
;; ;;
SX-4:SUPER-UX:*:*) SX-4:SUPER-UX:*:*)
GUESS=sx4-nec-superux$UNAME_RELEASE GUESS=sx4-nec-superux$UNAME_RELEASE
@ -1522,6 +1539,9 @@ EOF
i*86:rdos:*:*) i*86:rdos:*:*)
GUESS=$UNAME_MACHINE-pc-rdos GUESS=$UNAME_MACHINE-pc-rdos
;; ;;
i*86:Fiwix:*:*)
GUESS=$UNAME_MACHINE-pc-fiwix
;;
*:AROS:*:*) *:AROS:*:*)
GUESS=$UNAME_MACHINE-unknown-aros GUESS=$UNAME_MACHINE-unknown-aros
;; ;;

20
scripts/config.sub vendored
View File

@ -1,14 +1,14 @@
#! /bin/sh #! /bin/sh
# Configuration validation subroutine script. # Configuration validation subroutine script.
# Copyright 1992-2021 Free Software Foundation, Inc. # Copyright 1992-2022 Free Software Foundation, Inc.
# shellcheck disable=SC2006,SC2268 # see below for rationale # shellcheck disable=SC2006,SC2268 # see below for rationale
timestamp='2021-08-14' timestamp='2022-01-03'
# This file is free software; you can redistribute it and/or modify it # This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by # under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or # the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version. # (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, but # This program is distributed in the hope that it will be useful, but
@ -76,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\ version="\
GNU config.sub ($timestamp) GNU config.sub ($timestamp)
Copyright 1992-2021 Free Software Foundation, Inc. Copyright 1992-2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@ -1020,6 +1020,11 @@ case $cpu-$vendor in
;; ;;
# Here we normalize CPU types with a missing or matching vendor # Here we normalize CPU types with a missing or matching vendor
armh-unknown | armh-alt)
cpu=armv7l
vendor=alt
basic_os=${basic_os:-linux-gnueabihf}
;;
dpx20-unknown | dpx20-bull) dpx20-unknown | dpx20-bull)
cpu=rs6000 cpu=rs6000
vendor=bull vendor=bull
@ -1121,7 +1126,7 @@ case $cpu-$vendor in
xscale-* | xscalee[bl]-*) xscale-* | xscalee[bl]-*)
cpu=`echo "$cpu" | sed 's/^xscale/arm/'` cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
;; ;;
arm64-*) arm64-* | aarch64le-*)
cpu=aarch64 cpu=aarch64
;; ;;
@ -1304,7 +1309,7 @@ esac
if test x$basic_os != x if test x$basic_os != x
then then
# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just # First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
# set os. # set os.
case $basic_os in case $basic_os in
gnu/linux*) gnu/linux*)
@ -1748,7 +1753,8 @@ case $os in
| skyos* | haiku* | rdos* | toppers* | drops* | es* \ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr*) | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
| fiwix* )
;; ;;
# This one is extra strict with allowed versions # This one is extra strict with allowed versions
sco3.2v2 | sco3.2v[4-9]* | sco5v6*) sco3.2v2 | sco3.2v[4-9]* | sco5v6*)