summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1547
-rw-r--r--Make.xml.rules.in2
-rw-r--r--Makefile.am6
-rw-r--r--Makefile.in58
-rw-r--r--NEWS40
-rw-r--r--aclocal.m462
-rwxr-xr-xbuild-aux/compile6
-rwxr-xr-xbuild-aux/config.guess1411
-rwxr-xr-xbuild-aux/config.sub685
-rwxr-xr-xbuild-aux/depcomp2
-rwxr-xr-xbuild-aux/install-sh161
-rw-r--r--build-aux/ltmain.sh4
-rwxr-xr-xbuild-aux/missing2
-rwxr-xr-xbuild-aux/test-driver10
-rwxr-xr-xbuild-aux/ylwrap2
-rw-r--r--conf/Makefile.in31
-rw-r--r--conf/pam.conf5
-rw-r--r--conf/pam_conv1/Makefile.am2
-rw-r--r--conf/pam_conv1/Makefile.in38
-rw-r--r--conf/pam_conv1/pam_conv_y.c977
-rw-r--r--conf/pam_conv1/pam_conv_y.h37
-rw-r--r--conf/pam_conv1/pam_conv_y.y3
-rw-r--r--config.h.in26
-rwxr-xr-xconfigure2938
-rw-r--r--configure.ac269
-rw-r--r--debian/changelog35
-rw-r--r--debian/compat1
-rw-r--r--debian/control14
-rw-r--r--debian/libpam-cracklib.install2
-rw-r--r--debian/libpam-cracklib.manpages1
-rw-r--r--debian/libpam-cracklib.postinst9
-rw-r--r--debian/libpam-cracklib.prerm9
-rw-r--r--debian/libpam-modules-bin.install2
-rw-r--r--debian/libpam-modules-bin.lintian-overrides2
-rw-r--r--debian/libpam-modules-bin.manpages3
-rw-r--r--debian/libpam-modules.lintian-overrides17
-rw-r--r--debian/libpam-runtime.lintian-overrides10
-rw-r--r--debian/libpam0g-dev.install.in1
-rw-r--r--debian/libpam0g.lintian-overrides2
-rw-r--r--debian/libpam0g.symbols3
-rw-r--r--debian/not-installed8
-rw-r--r--debian/pam-configs/cracklib9
-rw-r--r--debian/patches-applied/008_modules_pam_limits_chroot40
-rw-r--r--debian/patches-applied/022_pam_unix_group_time_miscfixes2
-rw-r--r--debian/patches-applied/026_pam_unix_passwd_unknown_user8
-rw-r--r--debian/patches-applied/027_pam_limits_better_init_allow_explicit_root28
-rw-r--r--debian/patches-applied/031_pam_include6
-rw-r--r--debian/patches-applied/032_pam_limits_EPERM_NOT_FATAL2
-rw-r--r--debian/patches-applied/036_pam_wheel_getlogin_considered_harmful74
-rw-r--r--debian/patches-applied/040_pam_limits_log_failure2
-rw-r--r--debian/patches-applied/PAM-manpage-section118
-rw-r--r--debian/patches-applied/make_documentation_reproducible.patch2
-rw-r--r--debian/patches-applied/pam-limits-nofile-fd-setsize-cap2
-rw-r--r--debian/patches-applied/pam_env-allow-environment-files-without-EOL-at-EOF.patch30
-rw-r--r--debian/patches-applied/pam_faillock_create_directory31
-rw-r--r--debian/patches-applied/pam_mkhomedir_stat_before_opendir4
-rw-r--r--debian/patches-applied/pam_unix_avoid_checksalt43
-rw-r--r--debian/patches-applied/pam_unix_dont_trust_chkpwd_caller.patch4
-rw-r--r--debian/patches-applied/pam_unix_fix_sgid_shadow_auth.patch25
-rw-r--r--debian/patches-applied/pam_unix_initialize_daysleft29
-rw-r--r--debian/patches-applied/series6
-rw-r--r--debian/patches-applied/update-motd12
-rw-r--r--debian/po/ro.po47
-rwxr-xr-xdebian/rules7
-rw-r--r--debian/source.lintian-overrides1
-rw-r--r--doc/Makefile.in31
-rw-r--r--doc/adg/Makefile.in31
-rw-r--r--doc/custom-man.xsl2
-rw-r--r--doc/man/Makefile.in31
-rw-r--r--doc/man/PAM.84
-rw-r--r--doc/man/misc_conv.34
-rw-r--r--doc/man/pam.34
-rw-r--r--doc/man/pam.conf-syntax.xml20
-rw-r--r--doc/man/pam.conf.521
-rw-r--r--doc/man/pam_acct_mgmt.34
-rw-r--r--doc/man/pam_authenticate.34
-rw-r--r--doc/man/pam_chauthtok.34
-rw-r--r--doc/man/pam_close_session.34
-rw-r--r--doc/man/pam_conv.34
-rw-r--r--doc/man/pam_end.36
-rw-r--r--doc/man/pam_end.3.xml2
-rw-r--r--doc/man/pam_error.34
-rw-r--r--doc/man/pam_fail_delay.34
-rw-r--r--doc/man/pam_get_authtok.34
-rw-r--r--doc/man/pam_get_data.34
-rw-r--r--doc/man/pam_get_item.34
-rw-r--r--doc/man/pam_get_user.34
-rw-r--r--doc/man/pam_getenv.34
-rw-r--r--doc/man/pam_getenvlist.34
-rw-r--r--doc/man/pam_info.34
-rw-r--r--doc/man/pam_misc_drop_env.34
-rw-r--r--doc/man/pam_misc_paste_env.34
-rw-r--r--doc/man/pam_misc_setenv.34
-rw-r--r--doc/man/pam_open_session.34
-rw-r--r--doc/man/pam_prompt.34
-rw-r--r--doc/man/pam_putenv.34
-rw-r--r--doc/man/pam_set_data.34
-rw-r--r--doc/man/pam_set_item.34
-rw-r--r--doc/man/pam_setcred.34
-rw-r--r--doc/man/pam_sm_acct_mgmt.34
-rw-r--r--doc/man/pam_sm_authenticate.34
-rw-r--r--doc/man/pam_sm_chauthtok.34
-rw-r--r--doc/man/pam_sm_close_session.34
-rw-r--r--doc/man/pam_sm_open_session.34
-rw-r--r--doc/man/pam_sm_setcred.34
-rw-r--r--doc/man/pam_start.34
-rw-r--r--doc/man/pam_strerror.34
-rw-r--r--doc/man/pam_syslog.34
-rw-r--r--doc/man/pam_xauth_data.34
-rw-r--r--doc/mwg/Makefile.in31
-rw-r--r--doc/sag/Linux-PAM_SAG.xml6
-rw-r--r--doc/sag/Makefile.in31
-rw-r--r--doc/sag/pam_cracklib.xml34
-rw-r--r--doc/sag/pam_tally.xml38
-rw-r--r--doc/sag/pam_tally2.xml46
-rw-r--r--doc/specs/Makefile.in36
-rw-r--r--doc/specs/parse_y.c1029
-rw-r--r--doc/specs/parse_y.h45
-rw-r--r--examples/Makefile.in31
-rw-r--r--libpam/Makefile.am5
-rw-r--r--libpam/Makefile.in100
-rw-r--r--libpam/include/pam_inline.h51
-rw-r--r--libpam/include/security/pam_modutil.h5
-rw-r--r--libpam/libpam.map5
-rw-r--r--libpam/pam.pc.in9
-rw-r--r--libpam/pam_dispatch.c1
-rw-r--r--libpam/pam_end.c3
-rw-r--r--libpam/pam_modutil_check_user.c92
-rw-r--r--libpam/pam_modutil_priv.c17
-rw-r--r--libpam/pam_modutil_sanitize.c73
-rw-r--r--libpam/pam_start.c3
-rw-r--r--libpam_misc/Makefile.am4
-rw-r--r--libpam_misc/Makefile.in82
-rw-r--r--libpam_misc/misc_conv.c14
-rw-r--r--libpam_misc/pam_misc.pc.in9
-rw-r--r--libpamc/Makefile.am4
-rw-r--r--libpamc/Makefile.in89
-rw-r--r--libpamc/pamc.pc.in9
-rw-r--r--libpamc/test/Makefile.in31
-rw-r--r--m4/attribute.m416
-rw-r--r--m4/japhar_grep_cflags.m447
-rw-r--r--m4/jh_path_xml_catalog.m44
-rw-r--r--m4/ld-O1.m437
-rw-r--r--m4/ld-as-needed.m437
-rw-r--r--m4/ld-no-undefined.m437
-rw-r--r--m4/ld-z-now.m416
-rw-r--r--m4/libprelude.m429
-rw-r--r--m4/warn_lang_flags.m433
-rw-r--r--m4/warnings.m485
-rw-r--r--modules/Makefile.am21
-rw-r--r--modules/Makefile.in58
-rw-r--r--modules/pam_access/Makefile.in34
-rw-r--r--modules/pam_access/access.conf.54
-rw-r--r--modules/pam_access/pam_access.84
-rw-r--r--modules/pam_access/pam_access.c44
-rw-r--r--modules/pam_cracklib/Makefile.am33
-rw-r--r--modules/pam_cracklib/Makefile.in1148
-rw-r--r--modules/pam_cracklib/README254
-rw-r--r--modules/pam_cracklib/README.xml41
-rw-r--r--modules/pam_cracklib/pam_cracklib.8363
-rw-r--r--modules/pam_cracklib/pam_cracklib.8.xml592
-rw-r--r--modules/pam_cracklib/pam_cracklib.c899
-rwxr-xr-xmodules/pam_cracklib/tst-pam_cracklib2
-rw-r--r--modules/pam_debug/Makefile.in34
-rw-r--r--modules/pam_debug/pam_debug.84
-rw-r--r--modules/pam_deny/Makefile.in34
-rw-r--r--modules/pam_deny/pam_deny.84
-rw-r--r--modules/pam_echo/Makefile.in34
-rw-r--r--modules/pam_echo/pam_echo.84
-rw-r--r--modules/pam_env/Makefile.in34
-rw-r--r--modules/pam_env/README9
-rw-r--r--modules/pam_env/pam_env.88
-rw-r--r--modules/pam_env/pam_env.8.xml10
-rw-r--r--modules/pam_env/pam_env.c5
-rw-r--r--modules/pam_env/pam_env.conf.58
-rw-r--r--modules/pam_env/pam_env.conf.5.xml4
-rw-r--r--modules/pam_exec/Makefile.in34
-rw-r--r--modules/pam_exec/README5
-rw-r--r--modules/pam_exec/pam_exec.811
-rw-r--r--modules/pam_exec/pam_exec.8.xml16
-rw-r--r--modules/pam_exec/pam_exec.c6
-rw-r--r--modules/pam_faildelay/Makefile.in34
-rw-r--r--modules/pam_faildelay/pam_faildelay.84
-rw-r--r--modules/pam_faillock/Makefile.am4
-rw-r--r--modules/pam_faillock/Makefile.in38
-rw-r--r--modules/pam_faillock/README2
-rw-r--r--modules/pam_faillock/faillock.84
-rw-r--r--modules/pam_faillock/faillock.c17
-rw-r--r--modules/pam_faillock/faillock.conf.59
-rw-r--r--modules/pam_faillock/faillock.conf.5.xml10
-rw-r--r--modules/pam_faillock/main.c7
-rw-r--r--modules/pam_faillock/pam_faillock.86
-rw-r--r--modules/pam_faillock/pam_faillock.8.xml2
-rw-r--r--modules/pam_faillock/pam_faillock.c75
-rw-r--r--modules/pam_filter/Makefile.in34
-rw-r--r--modules/pam_filter/pam_filter.84
-rw-r--r--modules/pam_filter/pam_filter.c2
-rw-r--r--modules/pam_filter/upperLOWER/Makefile.am4
-rw-r--r--modules/pam_filter/upperLOWER/Makefile.in35
-rw-r--r--modules/pam_ftp/Makefile.in34
-rw-r--r--modules/pam_ftp/pam_ftp.84
-rw-r--r--modules/pam_ftp/pam_ftp.c2
-rw-r--r--modules/pam_group/Makefile.in34
-rw-r--r--modules/pam_group/group.conf.54
-rw-r--r--modules/pam_group/pam_group.84
-rw-r--r--modules/pam_issue/Makefile.in34
-rw-r--r--modules/pam_issue/pam_issue.84
-rw-r--r--modules/pam_keyinit/Makefile.in34
-rw-r--r--modules/pam_keyinit/pam_keyinit.84
-rw-r--r--modules/pam_lastlog/Makefile.in34
-rw-r--r--modules/pam_lastlog/README2
-rw-r--r--modules/pam_lastlog/pam_lastlog.86
-rw-r--r--modules/pam_lastlog/pam_lastlog.8.xml2
-rw-r--r--modules/pam_limits/Makefile.in34
-rw-r--r--modules/pam_limits/README1
-rw-r--r--modules/pam_limits/limits.conf11
-rw-r--r--modules/pam_limits/limits.conf.518
-rw-r--r--modules/pam_limits/limits.conf.5.xml13
-rw-r--r--modules/pam_limits/pam_limits.84
-rw-r--r--modules/pam_limits/pam_limits.c98
-rw-r--r--modules/pam_listfile/Makefile.in34
-rw-r--r--modules/pam_listfile/pam_listfile.84
-rw-r--r--modules/pam_localuser/Makefile.in34
-rw-r--r--modules/pam_localuser/pam_localuser.84
-rw-r--r--modules/pam_localuser/pam_localuser.c86
-rw-r--r--modules/pam_loginuid/Makefile.in34
-rw-r--r--modules/pam_loginuid/pam_loginuid.84
-rw-r--r--modules/pam_loginuid/pam_loginuid.c2
-rw-r--r--modules/pam_mail/Makefile.in34
-rw-r--r--modules/pam_mail/pam_mail.84
-rw-r--r--modules/pam_mkhomedir/Makefile.am2
-rw-r--r--modules/pam_mkhomedir/Makefile.in68
-rw-r--r--modules/pam_mkhomedir/mkhomedir_helper.811
-rw-r--r--modules/pam_mkhomedir/mkhomedir_helper.8.xml7
-rw-r--r--modules/pam_mkhomedir/mkhomedir_helper.c41
-rw-r--r--modules/pam_mkhomedir/pam_mkhomedir.813
-rw-r--r--modules/pam_mkhomedir/pam_mkhomedir.8.xml13
-rw-r--r--modules/pam_mkhomedir/pam_mkhomedir.c41
-rw-r--r--modules/pam_motd/Makefile.in34
-rw-r--r--modules/pam_motd/README5
-rw-r--r--modules/pam_motd/pam_motd.86
-rw-r--r--modules/pam_motd/pam_motd.8.xml5
-rw-r--r--modules/pam_motd/pam_motd.c97
-rw-r--r--modules/pam_namespace/Makefile.am2
-rw-r--r--modules/pam_namespace/Makefile.in36
-rw-r--r--modules/pam_namespace/md5.c48
-rw-r--r--modules/pam_namespace/md5.h10
-rw-r--r--modules/pam_namespace/namespace.conf.54
-rw-r--r--modules/pam_namespace/pam_namespace.836
-rw-r--r--modules/pam_namespace/pam_namespace.8.xml41
-rw-r--r--modules/pam_namespace/pam_namespace.c63
-rw-r--r--modules/pam_namespace/pam_namespace.h1
-rw-r--r--modules/pam_namespace/pam_namespace_helper.84
-rw-r--r--modules/pam_nologin/Makefile.in34
-rw-r--r--modules/pam_nologin/pam_nologin.84
-rw-r--r--modules/pam_permit/Makefile.in34
-rw-r--r--modules/pam_permit/pam_permit.84
-rw-r--r--modules/pam_pwhistory/Makefile.am21
-rw-r--r--modules/pam_pwhistory/Makefile.in218
-rw-r--r--modules/pam_pwhistory/README6
-rw-r--r--modules/pam_pwhistory/opasswd.c72
-rw-r--r--modules/pam_pwhistory/opasswd.h31
-rw-r--r--modules/pam_pwhistory/pam_pwhistory.810
-rw-r--r--modules/pam_pwhistory/pam_pwhistory.8.xml6
-rw-r--r--modules/pam_pwhistory/pam_pwhistory.c220
-rw-r--r--modules/pam_pwhistory/pwhistory_helper.854
-rw-r--r--modules/pam_pwhistory/pwhistory_helper.8.xml68
-rw-r--r--modules/pam_pwhistory/pwhistory_helper.c119
-rw-r--r--modules/pam_rhosts/Makefile.in34
-rw-r--r--modules/pam_rhosts/pam_rhosts.84
-rw-r--r--modules/pam_rootok/Makefile.in34
-rw-r--r--modules/pam_rootok/pam_rootok.84
-rw-r--r--modules/pam_rootok/pam_rootok.c18
-rw-r--r--modules/pam_securetty/Makefile.in34
-rw-r--r--modules/pam_securetty/pam_securetty.84
-rw-r--r--modules/pam_securetty/pam_securetty.c6
-rw-r--r--modules/pam_selinux/Makefile.in34
-rw-r--r--modules/pam_selinux/pam_selinux.84
-rw-r--r--modules/pam_selinux/pam_selinux.c13
-rw-r--r--modules/pam_sepermit/Makefile.in34
-rw-r--r--modules/pam_sepermit/pam_sepermit.84
-rw-r--r--modules/pam_sepermit/sepermit.conf2
-rw-r--r--modules/pam_sepermit/sepermit.conf.54
-rw-r--r--modules/pam_setquota/Makefile.in34
-rw-r--r--modules/pam_setquota/README6
-rw-r--r--modules/pam_setquota/pam_setquota.810
-rw-r--r--modules/pam_setquota/pam_setquota.8.xml10
-rw-r--r--modules/pam_setquota/pam_setquota.c4
-rw-r--r--modules/pam_shells/Makefile.in34
-rw-r--r--modules/pam_shells/pam_shells.84
-rw-r--r--modules/pam_stress/Makefile.am12
-rw-r--r--modules/pam_stress/Makefile.in126
-rw-r--r--modules/pam_stress/README93
-rw-r--r--modules/pam_stress/README.xml31
-rw-r--r--modules/pam_stress/pam_stress.8190
-rw-r--r--modules/pam_stress/pam_stress.8.xml356
-rw-r--r--modules/pam_succeed_if/Makefile.in34
-rw-r--r--modules/pam_succeed_if/pam_succeed_if.84
-rw-r--r--modules/pam_tally/Makefile.am39
-rw-r--r--modules/pam_tally/Makefile.in1221
-rw-r--r--modules/pam_tally/README145
-rw-r--r--modules/pam_tally/README.xml41
-rw-r--r--modules/pam_tally/faillog.h55
-rw-r--r--modules/pam_tally/pam_tally.8256
-rw-r--r--modules/pam_tally/pam_tally.8.xml459
-rw-r--r--modules/pam_tally/pam_tally.c853
-rw-r--r--modules/pam_tally/pam_tally_app.c6
-rwxr-xr-xmodules/pam_tally/tst-pam_tally2
-rw-r--r--modules/pam_tally2/Makefile.am43
-rw-r--r--modules/pam_tally2/Makefile.in1227
-rw-r--r--modules/pam_tally2/README156
-rw-r--r--modules/pam_tally2/README.xml46
-rw-r--r--modules/pam_tally2/pam_tally2.8244
-rw-r--r--modules/pam_tally2/pam_tally2.8.xml450
-rw-r--r--modules/pam_tally2/pam_tally2.c1035
-rw-r--r--modules/pam_tally2/pam_tally2_app.c6
-rw-r--r--modules/pam_tally2/tallylog.h52
-rwxr-xr-xmodules/pam_tally2/tst-pam_tally22
-rw-r--r--modules/pam_time/Makefile.in34
-rw-r--r--modules/pam_time/pam_time.84
-rw-r--r--modules/pam_time/time.conf.54
-rw-r--r--modules/pam_timestamp/Makefile.am19
-rw-r--r--modules/pam_timestamp/Makefile.in90
-rw-r--r--modules/pam_timestamp/README3
-rw-r--r--modules/pam_timestamp/hmac_openssl_wrapper.c381
-rw-r--r--modules/pam_timestamp/hmac_openssl_wrapper.h57
-rw-r--r--modules/pam_timestamp/pam_timestamp.89
-rw-r--r--modules/pam_timestamp/pam_timestamp.8.xml5
-rw-r--r--modules/pam_timestamp/pam_timestamp.c53
-rw-r--r--modules/pam_timestamp/pam_timestamp_check.86
-rw-r--r--modules/pam_timestamp/pam_timestamp_check.8.xml2
-rw-r--r--modules/pam_timestamp/sha1.c21
-rw-r--r--modules/pam_timestamp/sha1.h5
-rw-r--r--modules/pam_tty_audit/Makefile.in34
-rw-r--r--modules/pam_tty_audit/README2
-rw-r--r--modules/pam_tty_audit/pam_tty_audit.86
-rw-r--r--modules/pam_tty_audit/pam_tty_audit.8.xml2
-rw-r--r--modules/pam_umask/Makefile.in34
-rw-r--r--modules/pam_umask/pam_umask.84
-rw-r--r--modules/pam_umask/pam_umask.c18
-rw-r--r--modules/pam_unix/Makefile.am8
-rw-r--r--modules/pam_unix/Makefile.in42
-rw-r--r--modules/pam_unix/README6
-rw-r--r--modules/pam_unix/bigcrypt.c10
-rw-r--r--modules/pam_unix/lckpwdf.-c10
-rw-r--r--modules/pam_unix/md5.c40
-rw-r--r--modules/pam_unix/md5.h10
-rw-r--r--modules/pam_unix/pam_unix.810
-rw-r--r--modules/pam_unix/pam_unix.8.xml6
-rw-r--r--modules/pam_unix/pam_unix_acct.c6
-rw-r--r--modules/pam_unix/pam_unix_passwd.c2
-rw-r--r--modules/pam_unix/passverify.c173
-rw-r--r--modules/pam_unix/passverify.h4
-rw-r--r--modules/pam_unix/support.c48
-rw-r--r--modules/pam_unix/unix_chkpwd.84
-rw-r--r--modules/pam_unix/unix_chkpwd.c9
-rw-r--r--modules/pam_unix/unix_update.84
-rw-r--r--modules/pam_unix/unix_update.c13
-rw-r--r--modules/pam_userdb/Makefile.in34
-rw-r--r--modules/pam_userdb/README3
-rw-r--r--modules/pam_userdb/pam_userdb.86
-rw-r--r--modules/pam_userdb/pam_userdb.8.xml3
-rw-r--r--modules/pam_userdb/pam_userdb.c62
-rw-r--r--modules/pam_usertype/Makefile.in34
-rw-r--r--modules/pam_usertype/pam_usertype.84
-rw-r--r--modules/pam_usertype/pam_usertype.c3
-rw-r--r--modules/pam_warn/Makefile.in34
-rw-r--r--modules/pam_warn/pam_warn.84
-rw-r--r--modules/pam_wheel/Makefile.in34
-rw-r--r--modules/pam_wheel/README6
-rw-r--r--modules/pam_wheel/pam_wheel.86
-rw-r--r--modules/pam_wheel/pam_wheel.8.xml6
-rw-r--r--modules/pam_wheel/pam_wheel.c61
-rw-r--r--modules/pam_xauth/Makefile.in34
-rw-r--r--modules/pam_xauth/pam_xauth.84
-rw-r--r--modules/pam_xauth/pam_xauth.c16
-rw-r--r--po/Linux-PAM.pot187
-rw-r--r--po/POTFILES.in195
-rw-r--r--po/af.po185
-rw-r--r--po/am.po185
-rw-r--r--po/ar.gmobin7955 -> 6560 bytes
-rw-r--r--po/ar.po259
-rw-r--r--po/as.gmobin13006 -> 10333 bytes
-rw-r--r--po/as.po277
-rw-r--r--po/az.po187
-rw-r--r--po/be.po187
-rw-r--r--po/bg.gmobin11504 -> 12566 bytes
-rw-r--r--po/bg.po356
-rw-r--r--po/bn.gmobin13587 -> 10846 bytes
-rw-r--r--po/bn.po279
-rw-r--r--po/bn_IN.gmobin13591 -> 10850 bytes
-rw-r--r--po/bn_IN.po279
-rw-r--r--po/bs.po186
-rw-r--r--po/ca.gmobin12189 -> 10400 bytes
-rw-r--r--po/ca.po288
-rw-r--r--po/cs.gmobin12016 -> 9857 bytes
-rw-r--r--po/cs.po275
-rw-r--r--po/cy.po187
-rw-r--r--po/da.gmobin11797 -> 9846 bytes
-rw-r--r--po/da.po278
-rw-r--r--po/de.gmobin11986 -> 10185 bytes
-rw-r--r--po/de.po288
-rw-r--r--po/de_CH.po185
-rw-r--r--po/el.po185
-rw-r--r--po/eo.gmobin494 -> 3833 bytes
-rw-r--r--po/eo.po289
-rw-r--r--po/es.gmobin9682 -> 7937 bytes
-rw-r--r--po/es.po302
-rw-r--r--po/et.gmobin2764 -> 2251 bytes
-rw-r--r--po/et.po222
-rw-r--r--po/eu.gmobin1015 -> 968 bytes
-rw-r--r--po/eu.po188
-rw-r--r--po/fa.po184
-rw-r--r--po/fi.gmobin11031 -> 10046 bytes
-rw-r--r--po/fi.po321
-rw-r--r--po/fr.gmobin12820 -> 10700 bytes
-rw-r--r--po/fr.po281
-rw-r--r--po/ga.gmobin9758 -> 7693 bytes
-rw-r--r--po/ga.po282
-rw-r--r--po/gl.po185
-rw-r--r--po/gu.gmobin13074 -> 10377 bytes
-rw-r--r--po/gu.po277
-rw-r--r--po/he.gmobin2889 -> 10834 bytes
-rw-r--r--po/he.po459
-rw-r--r--po/hi.gmobin12447 -> 9833 bytes
-rw-r--r--po/hi.po277
-rw-r--r--po/hr.po186
-rw-r--r--po/hu.gmobin9185 -> 7349 bytes
-rw-r--r--po/hu.po291
-rw-r--r--po/ia.gmobin9268 -> 7077 bytes
-rw-r--r--po/ia.po278
-rw-r--r--po/id.gmobin4136 -> 4025 bytes
-rw-r--r--po/id.po191
-rw-r--r--po/is.po185
-rw-r--r--po/it.gmobin11823 -> 10029 bytes
-rw-r--r--po/it.po287
-rw-r--r--po/ja.gmobin9940 -> 7744 bytes
-rw-r--r--po/ja.po276
-rw-r--r--po/ka.gmobin3293 -> 2579 bytes
-rw-r--r--po/ka.po216
-rw-r--r--po/kk.gmobin11518 -> 12453 bytes
-rw-r--r--po/kk.po357
-rw-r--r--po/km.gmobin10771 -> 8868 bytes
-rw-r--r--po/km.po242
-rw-r--r--po/kn.gmobin13861 -> 10850 bytes
-rw-r--r--po/kn.po276
-rw-r--r--po/ko.gmobin9240 -> 10148 bytes
-rw-r--r--po/ko.po407
-rw-r--r--po/kw_GB.po187
-rw-r--r--po/ky.po184
-rw-r--r--po/lt.po186
-rw-r--r--po/lv.po186
-rw-r--r--po/mk.po185
-rw-r--r--po/ml.gmobin15749 -> 12685 bytes
-rw-r--r--po/ml.po277
-rw-r--r--po/mn.po185
-rw-r--r--po/mr.gmobin13288 -> 10413 bytes
-rw-r--r--po/mr.po277
-rw-r--r--po/ms.po184
-rw-r--r--po/my.po184
-rw-r--r--po/nb.gmobin11581 -> 9536 bytes
-rw-r--r--po/nb.po272
-rw-r--r--po/ne.po185
-rw-r--r--po/nl.gmobin11750 -> 10020 bytes
-rw-r--r--po/nl.po289
-rw-r--r--po/nn.gmobin473 -> 9531 bytes
-rw-r--r--po/nn.po395
-rw-r--r--po/or.gmobin18696 -> 15523 bytes
-rw-r--r--po/or.po272
-rw-r--r--po/pa.gmobin12506 -> 14212 bytes
-rw-r--r--po/pa.po396
-rw-r--r--po/pl.gmobin12236 -> 10235 bytes
-rw-r--r--po/pl.po283
-rw-r--r--po/pt.gmobin12413 -> 10388 bytes
-rw-r--r--po/pt.po282
-rw-r--r--po/pt_BR.gmobin11561 -> 9795 bytes
-rw-r--r--po/pt_BR.po286
-rw-r--r--po/ro.gmobin534 -> 10103 bytes
-rw-r--r--po/ro.po403
-rw-r--r--po/ru.gmobin15994 -> 13398 bytes
-rw-r--r--po/ru.po283
-rw-r--r--po/si.gmobin10236 -> 8618 bytes
-rw-r--r--po/si.po243
-rw-r--r--po/sk.gmobin11788 -> 9917 bytes
-rw-r--r--po/sk.po287
-rw-r--r--po/sl.po187
-rw-r--r--po/sq.po185
-rw-r--r--po/sr.gmobin11558 -> 9013 bytes
-rw-r--r--po/sr.po280
-rw-r--r--po/sr@latin.gmobin8742 -> 6926 bytes
-rw-r--r--po/sr@latin.po279
-rw-r--r--po/sv.gmobin11832 -> 9864 bytes
-rw-r--r--po/sv.po280
-rw-r--r--po/ta.gmobin13871 -> 10884 bytes
-rw-r--r--po/ta.po277
-rw-r--r--po/te.gmobin13868 -> 11038 bytes
-rw-r--r--po/te.po277
-rw-r--r--po/tg.po185
-rw-r--r--po/th.po184
-rw-r--r--po/tr.gmobin11983 -> 9969 bytes
-rw-r--r--po/tr.po279
-rw-r--r--po/uk.gmobin15849 -> 13290 bytes
-rw-r--r--po/uk.po285
-rw-r--r--po/ur.po185
-rw-r--r--po/vi.gmobin9369 -> 7349 bytes
-rw-r--r--po/vi.po280
-rw-r--r--po/yo.po185
-rw-r--r--po/zh_CN.gmobin8433 -> 9086 bytes
-rw-r--r--po/zh_CN.po369
-rw-r--r--po/zh_HK.po184
-rw-r--r--po/zh_TW.gmobin11086 -> 9083 bytes
-rw-r--r--po/zh_TW.po271
-rw-r--r--po/zu.gmobin6904 -> 5759 bytes
-rw-r--r--po/zu.po247
-rw-r--r--tests/Makefile.in34
-rw-r--r--tests/tst-pam_end.c2
-rw-r--r--tests/tst-pam_fail_delay.c2
-rw-r--r--tests/tst-pam_get_item.c2
-rw-r--r--tests/tst-pam_getenvlist.c2
-rw-r--r--tests/tst-pam_set_data.c2
-rw-r--r--tests/tst-pam_set_item.c2
-rw-r--r--tests/tst-pam_start.c2
-rw-r--r--tests/tst-pam_start_confdir.c2
-rw-r--r--xtests/Makefile.am2
-rw-r--r--xtests/Makefile.in84
-rw-r--r--xtests/tst-pam_cracklib1.c135
-rw-r--r--xtests/tst-pam_cracklib1.pamd2
-rw-r--r--xtests/tst-pam_cracklib2.c143
-rw-r--r--xtests/tst-pam_cracklib2.pamd2
529 files changed, 19655 insertions, 28770 deletions
diff --git a/ChangeLog b/ChangeLog
index 78690bfd..df5f1749 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,1550 @@
+2021-09-03 Dmitry V. Levin <ldv@altlinux.org>
+
+ Fix a typo found using codespell tool.
+ * modules/pam_pwhistory/pam_pwhistory.c: Replace "crypted password" with
+ "hashed password" in comment.
+ * modules/pam_unix/passverify.c (create_password_hash): Rename "crypted"
+ local variable to "hashed".
+
+2021-08-30 Fabrice Fontaine <fontaine.fabrice@gmail.com>
+
+ configure.ac: also search libcrypt through pkg-config.
+ libxcrypt provides a libcrypt.pc file so use it if available as this
+ will allow to retrieve the library path (e.g.
+ -L/home/buildroot/output/host//riscv64-buildroot-linux-musl/sysroot/usr/lib)
+ which is useful when cross-compiling and will avoid the following build
+ failure on buildroot:
+
+ /home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/riscv64-buildroot-linux-musl/10.2.0/../../../../riscv64-buildroot-linux-musl/bin/ld: .libs/passverify.o: in function `.L30':
+ passverify.c:(.text+0x368): undefined reference to `crypt_checksalt'
+
+ Fixes:
+ - http://autobuild.buildroot.org/results/20b14e222b35c2d1269960075832b784ba81aa1a
+
+2021-08-19 Dmitry V. Levin <ldv@altlinux.org>
+
+ pam_unix: workaround the problem caused by libnss_systemd.
+ The getspnam(3) manual page says that errno shall be set to EACCES when
+ the caller does not have permission to access the shadow password file.
+ Unfortunately, this contract is broken when libnss_systemd is used in
+ the nss stack.
+
+ Workaround this problem by falling back to the helper invocation when
+ pam_modutil_getspnam returns NULL regardless of errno. As pam_unix
+ already behaves this way when selinux is enabled, it should be OK
+ for the case when selinux is not enabled, too.
+
+ * modules/pam_unix/passverify.c (get_account_info): When
+ pam_modutil_getspnam returns NULL, unconditionally fall back
+ to the helper invocation.
+
+ Complements: f220cace2053 ("Permit unix_chkpwd & pam_unix.so to run without being setuid-root")
+ Resolves: https://github.com/linux-pam/linux-pam/issues/379
+
+2021-08-18 Jérôme Fenal <jfenal@free.fr>
+
+ po: update translations using Weblate (French)
+ Currently translated at 100.0% (100 of 100 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fr/
+
+2021-08-02 panchenbo <panchenbo@uniontech.com>
+
+ po/zh_CN.po: fix pam_lastlog translation errors.
+ Closes: https://github.com/linux-pam/linux-pam/issues/383
+
+2021-07-24 simmon <simmon@nplob.com>
+
+ po: update translations using Weblate (Korean)
+ Currently translated at 100.0% (100 of 100 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ko/
+
+2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
+
+ po: update translations using Weblate (Swedish)
+ Currently translated at 100.0% (100 of 100 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/sv/
+
+2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
+
+ po: update translations using Weblate (Portuguese (Brazil))
+ Currently translated at 100.0% (100 of 100 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt_BR/
+
+2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
+
+ po: update translations using Weblate (Portuguese (Brazil))
+ Currently translated at 100.0% (100 of 100 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt/
+
+2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
+
+ po: update translations using Weblate (Dutch)
+ Currently translated at 100.0% (100 of 100 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/nl/
+
+2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
+
+ po: update translations using Weblate (Italian)
+ Currently translated at 100.0% (100 of 100 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/it/
+
+2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
+
+ po: update translations using Weblate (Hebrew)
+ Currently translated at 100.0% (100 of 100 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/he/
+
+2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
+
+ po: update translations using Weblate (Finnish)
+ Currently translated at 100.0% (100 of 100 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fi/
+
+2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
+
+ po: update translations using Weblate (Danish)
+ Currently translated at 100.0% (100 of 100 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/da/
+
+2021-07-22 Dmitry V. Levin <ldv@altlinux.org>
+
+ po: update translations using Weblate (Catalan)
+ Currently translated at 100.0% (100 of 100 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ca/
+
+2021-07-22 Yuri Chornoivan <yurchor@ukr.net>
+
+ po: update translations using Weblate (Ukrainian)
+ Currently translated at 100.0% (100 of 100 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/uk/
+
+2021-07-22 Oğuz Ersen <oguzersen@protonmail.com>
+
+ po: update translations using Weblate (Turkish)
+ Currently translated at 100.0% (100 of 100 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/tr/
+
+2021-07-21 Piotr Drąg <piotrdrag@gmail.com>
+
+ po: update translations using Weblate (Polish)
+ Currently translated at 100.0% (100 of 100 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pl/
+
+2021-07-21 Dmitry V. Levin <ldv@altlinux.org>
+
+ po: update translations using Weblate (German)
+ Currently translated at 100.0% (100 of 100 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/de/
+
+2021-07-21 Dmitry V. Levin <ldv@altlinux.org>
+
+ po: update translations using Weblate (Russian)
+ Currently translated at 100.0% (100 of 100 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ru/
+
+2021-07-21 Seong-ho Cho <darkcircle.0426@gmail.com>
+
+ po: update translations using Weblate (Korean)
+ Currently translated at 100.0% (99 of 99 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ko/
+
+2021-07-20 Dmitry V. Levin <ldv@altlinux.org>
+
+ po: update .pot and .po files.
+ Regenerate po/Linux-PAM.pot and po/*.po using "make -C po update-po"
+ command.
+
+ Prepare for 1.5.2 release.
+ * configure.ac (AC_INIT): Raise version to 1.5.2.
+ * NEWS: Update.
+
+ pam_faillock: remove confusing comment.
+ * modules/pam_faillock/pam_faillock.c (faillock_message): Remove the
+ comment that meant to help translators but actually confused xgettext.
+
+2021-07-09 Iker Pedrosa <ipedrosa@redhat.com>
+
+ pam_filter: Close file after controlling tty.
+ Failing to check the descriptor value meant that there was a bug in the
+ attempt to close the controlling tty. Moreover, this would lead to a
+ file descriptor leak as pointed out by the static analyzer tool:
+
+ Error: RESOURCE_LEAK (CWE-772): [#def26]
+ Linux-PAM-1.5.1/modules/pam_filter/pam_filter.c:356: open_fn: Returning handle opened by "open". [Note: The source code implementation of the function has been overridden by a user model.]
+ Linux-PAM-1.5.1/modules/pam_filter/pam_filter.c:356: var_assign: Assigning: "t" = handle returned from "open("/dev/tty", 2)".
+ Linux-PAM-1.5.1/modules/pam_filter/pam_filter.c:357: off_by_one: Testing whether handle "t" is strictly greater than zero is suspicious. "t" leaks when it is zero.
+ Linux-PAM-1.5.1/modules/pam_filter/pam_filter.c:357: remediation: Did you intend to include equality with zero?
+ Linux-PAM-1.5.1/modules/pam_filter/pam_filter.c:367: leaked_handle: Handle variable "t" going out of scope leaks the handle.
+ 365| pam_syslog(pamh, LOG_ERR,
+ 366| "child cannot become new session: %m");
+ 367|-> return PAM_ABORT;
+ 368| }
+ 369|
+
+2021-06-29 Andrew G. Morgan <morgan@kernel.org>
+
+ Permit unix_chkpwd & pam_unix.so to run without being setuid-root.
+ Remove the hard-coding of the idea that the only way pam_unix.so can
+ read the shadow file is if it can, in some way, run setuid-root.
+ Linux capabilities only require cap_dac_override to read the /etc/shadow
+ file.
+
+ This change achieves two things: it opens a path for a linux-pam
+ application to run without being setuid-root; further, it allows
+ unix_chkpwd to run non-setuid-root if it is installed:
+
+ sudo setcap cap_dac_override=ep unix_chkpwd
+
+ If we wanted to link against libcap, we could install this binary with
+ cap_dac_override=p, and use cap_set_proc() to raise the effective bit
+ at runtime. However, some distributions already link unix_chkpwd
+ against libcap-ng for some, likely spurious, reason so "ep" is fine
+ for now.
+
+2021-06-15 Fabrice Fontaine <fontaine.fabrice@gmail.com>
+
+ configure.ac: fix build with libxcrypt and uclibc-ng.
+ Fix the following build failure with libxcrypt and uclibc-ng:
+
+ ld: unix_chkpwd-passverify.o: in function `verify_pwd_hash':
+ passverify.c:(.text+0xab4): undefined reference to `crypt_checksalt'
+
+ Fixes:
+ - http://autobuild.buildroot.org/results/65d68b7c9c7de1c7cb0f941ff9982f93a49a56f8
+
+2021-06-14 Mathieu Trossevin <mathieu.trossevin@gmail.com>
+
+ Add pkgconfig files for provided libraries.
+ * .gitignore: Add .pc files as they are generated by autoconf.
+ * configure.ac: Generate .pc files for libpam, libpam_misc and libpamc.
+ * libpam/Makefile.am: Install pam.pc.
+ * libpam/pam.pc.in: New file.
+ * libpam_misc/Makefile.am: Install pam_misc.pc
+ * libpam_misc/pam_misc.pc.in: New file.
+ * libpamc/Makefile.am: Install pamc.pc
+
+ This allow applications and PAM modules to automatically find libpam,
+ libpam_misc and libpamc if they are installed instead of having to
+ manually search for them.
+
+2021-06-14 Björn Esser <besser82@fedoraproject.org>
+
+ Remove support for legacy xcrypt.
+ Since many distributions are shipping a version of libxcrypt >= 4.0.0
+ as a replacement for glibc's libcrypt now, older versions of xcrypt,
+ which could be installed in parallel, are not relevant anymore.
+
+ * configure.ac (AC_CHECK_HEADERS): Remove xcrypt.h.
+ (AC_SEARCH_LIBS): Remove xcrypt.
+ (AC_CHECK_FUNCS): Remove crypt_gensalt_r.
+ (AC_DEFINE): Remove HAVE_LIBXCRYPT.
+ * modules/pam_pwhistory/opasswd.c [HAVE_LIBXCRYPT]: Remove.
+ * modules/pam_unix/bigcrypt.c [HAVE_LIBXCRYPT]: Likewise.
+ * modules/pam_userdb/pam_userdb.c [HAVE_LIBXCRYPT]: Likewise.
+ * modules/pam_unix/passverify.c [HAVE_LIBXCRYPT]: Likewise.
+ (create_password_hash) [HAVE_LIBXCRYPT]: Likewise.
+
+2021-06-14 Jeff Squyres <jsquyres@cisco.com>
+
+ pam_misc: set default length of misc_conv() buffer to 4096.
+
+ pam_misc: make length of misc_conv() configurable.
+ Add --with-misc-conv-bufsize=<number> option to configure to allow
+ a longer buffer size for libpam_misc's misc_conv() function (it still
+ defaults to 512 bytes).
+
+2021-06-14 Iker Pedrosa <ipedrosa@redhat.com>
+
+ pam_timestamp: replace hmac implementation.
+ sha1 is no longer recommended as a cryptographic algorithm for
+ authentication. Thus, the idea of this change is to replace the
+ implementation provided by hmacsha1 included in pam_timestamp module by
+ the one in the openssl library. This way, there's no need to maintain
+ the cryptographic algorithm implementation and it can be easily changed
+ with a single configuration change.
+
+ modules/pam_timestamp/hmac_openssl_wrapper.c: implement wrapper
+ functions around openssl's hmac implementation. Moreover, manage the key
+ generation and its read and write in a file. Include an option to
+ configure the cryptographic algorithm in login.defs file.
+ modules/pam_timestamp/hmac_openssl_wrapper.h: likewise.
+ modules/pam_timestamp/pam_timestamp.c: replace calls to functions
+ provided by hmacsha1 by functions provided by openssl's wrapper.
+ configure.ac: include openssl dependecy if it is enabled.
+ modules/pam_timestamp/Makefile.am: include new files and openssl library
+ to compilation.
+ ci/install-dependencies.sh: include openssl library to dependencies.
+ NEWS: add new item to next release.
+ Make.xml.rules.in: add stringparam profiling for hmac
+ doc/custom-man.xsl: change import docbook to one with profiling
+ modules/pam_timestamp/pam_timestamp.8.xml: add conditional paragraph to
+ indicate the value in /etc/login.defs that holds the value for the
+ encryption algorithm
+
+ Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1947294
+
+2021-06-13 Dmitry V. Levin <ldv@altlinux.org>
+
+ .github: add gcc-11, clang-12, and clang-11 jobs.
+ * .github/workflows/ci.yml (gcc11-x86_64, gcc11-x86, gcc11-x32,
+ clang12-x86_64, clang11-x86_64): New jobs.
+
+2021-06-13 Dmitry V. Levin <ldv@altlinux.org>
+
+ tests: fix -Wmaybe-uninitialized warnings.
+ Fix the following class of compilation warnings reported by gcc 11:
+
+ tst-pam_end.c: In function ‘main’:
+ tst-pam_end.c:55:12: error: ‘conv’ may be used uninitialized [-Werror=maybe-uninitialized]
+ 55 | retval = pam_start (service, user, &conv, &pamh);
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ In file included from tst-pam_end.c:41:
+ ../libpam/include/security/pam_appl.h:23:1: note: by argument 3 of type ‘const struct pam_conv *’ to ‘pam_start’ declared here
+ 23 | pam_start(const char *service_name, const char *user,
+ | ^~~~~~~~~
+ tst-pam_end.c:49:19: note: ‘conv’ declared here
+ 49 | struct pam_conv conv;
+ | ^~~~
+
+ * tests/tst-pam_end.c (main): Initialize conv variable.
+ * tests/tst-pam_fail_delay.c: Likewise.
+ * tests/tst-pam_get_item.c: Likewise.
+ * tests/tst-pam_getenvlist.c: Likewise.
+ * tests/tst-pam_set_data.c: Likewise.
+ * tests/tst-pam_set_item.c: Likewise.
+ * tests/tst-pam_start.c: Likewise.
+ * tests/tst-pam_start_confdir.c: Likewise.
+
+2021-06-10 Dmitry V. Levin <ldv@altlinux.org>
+
+ pam_unix: do not use crypt_checksalt when checking for password expiration
+ According to Zack Weinberg, the intended meaning of
+ CRYPT_SALT_METHOD_LEGACY is "passwd(1) should not use this hashing
+ method", it is not supposed to mean "force a password change on next
+ login for any user with an existing stored hash using this method".
+
+ This reverts commit 4da9febc39b955892a30686e8396785b96bb8ba5.
+
+ * modules/pam_unix/passverify.c (check_shadow_expiry)
+ [CRYPT_CHECKSALT_AVAILABLE]: Remove.
+
+ Closes: https://github.com/linux-pam/linux-pam/issues/367
+
+2021-06-10 Patrick Schleizer <adrelanos@whonix.org>
+
+ pam_exec: implement quiet_log option.
+ * modules/pam_exec/pam_exec.c (call_exec): Implement quiet_log option.
+ * modules/pam_exec/pam_exec.8.xml: Document it.
+
+ Resolves: https://github.com/linux-pam/linux-pam/issues/334
+
+2021-05-24 Jeff Squyres <jsquyres@cisco.com>
+
+ pam.conf: clarify default action for unspecified return codes.
+ Add short blurbs explaining that if a return code is not specified in
+ the "[value1=action1 value2=action2 ...]" form and "default=action" is
+ not specified, that return code's action defaults to "bad".
+
+2021-05-01 Hasan <aliyevH@hotmail.com>
+
+ man: fix spelling bug in pam_end.3.xml.
+ * doc/man/pam_end.3.xml: Fix repeated words.
+
+2021-04-25 simmon <simmon@nplob.com>
+
+ po: update translations using Weblate (Korean)
+ Currently translated at 100.0% (99 of 99 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ko/
+
+2021-04-25 Emilio Herrera <ehespinosa57@gmail.com>
+
+ po: update translations using Weblate (Spanish)
+ Currently translated at 81.8% (81 of 99 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/es/
+
+2021-04-22 Josef Moellers <jmoellers@suse.de>
+
+ pam_limits: "Unlimited" is not a valid value for RLIMIT_NOFILE.
+ Replace it with a value obtained from /proc/sys/fs/nr_open
+
+ * modules/pam_limits/limits.conf.5.xml: Document the replacement.
+ * modules/pam_limits/pam_limits.c: Replace unlimited RLIMIT_NOFILE
+ value with a value obtained from /proc/sys/fs/nr_open
+
+2021-04-21 Stanislav Zidek <szidek@redhat.com>
+
+ pam_userdb: Prevent garbage characters from db.
+ Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1791965
+
+2021-04-12 Tomas Mraz <tmraz@fedoraproject.org>
+
+ misc_conv: Flush the terminal input after the password is read.
+ Fixes #347
+
+ * libpam_misc/misc_conv.c (read_string): Use TCSAFLUSH instead
+ of TCSADRAIN when resetting the terminal echo state
+
+2021-04-12 Tomas Mraz <tmraz@fedoraproject.org>
+
+ pam_access: clean up the remote host matching code.
+ * modules/pam_access/pam_access.c (from_match): Split out remote_match()
+ function and avoid calling it when matching against LOCAL keyword.
+ There is also no point in doing domain match against TTY or SERVICE.
+
+2021-03-25 chuanqin <chuanqing.qin@nokia-sbell.com>
+
+ pam_faillock: convert spaces to tab to keep code style.
+ convert spaces to tab which mixture use in modules/pam_faillock/main.c
+
+2021-03-08 theslimshaney <33791263+theslimshaney@users.noreply.github.com>
+
+ pam_env: fix example in pam_env.conf.5 for setting variable.
+
+2021-03-05 dshein-alt <76520100+dshein-alt@users.noreply.github.com>
+
+ pam_mkhomedir: use HOME_MODE or UMASK from /etc/login.defs.
+ Follow the example of useradd(8) and set the user home directory mode
+ to the value of HOME_MODE or UMASK configuration item from
+ /etc/login.defs when umask option is not specified.
+
+2021-02-13 Ricky Tigg <ricky.tigg@gmail.com>
+ Ricky Tigg <ricky.tigg@gmail.com>
+
+ po: update translations using Weblate (Finnish)
+ Currently translated at 100.0% (99 of 99 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fi/
+
+2021-02-13 Balázs Meskó <meskobalazs@mailbox.org>
+ Balázs Meskó <meskobalazs@mailbox.org>
+
+ po: update translations using Weblate (Hungarian)
+ Currently translated at 77.7% (77 of 99 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/hu/
+
+2021-02-13 Carmen Bianca Bakker <carmen@carmenbianca.eu>
+ Carmen Bianca Bakker <carmen@carmenbianca.eu>
+
+ po: update translations using Weblate (Esperanto)
+ Currently translated at 43.4% (43 of 99 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/eo/
+
+2021-02-13 Weblate <noreply@weblate.org>
+ Weblate <noreply@weblate.org>
+
+ Update translation files.
+ Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/
+ Translation: linux-pam/master
+
+2021-01-27 Changqing Li <changqing.li@windriver.com>
+
+ configure.ac: add --with-systemdunitdir option.
+ * Add this option to support the following scenario:
+ prefix = '/usr'
+ servicedir = '/lib/systemd/system'
+
+ * The default behavior is changed:
+ If this option is not given, servicedir will be set to the value that is
+ obtained from systemd pkg-config file. If the value cannot be obtained,
+ servicedir will be set to the default value '$(prefix)/lib/systemd/system'.
+
+2021-01-27 Changqing Li <changqing.li@windriver.com>
+
+ faillock: create tallydir before creating tallyfile.
+ The default tallydir is "/var/run/faillock", and this default
+ tallydir may not exist.
+
+ Function open may fail as tallydir does not exist when creating
+ the tallyfile. Therefore, faillock will not work well.
+
+ Fix this problem by creating tallydir before creating tallyfile
+ when the tallydir does not exist.
+
+2021-01-27 Ludwig Nussel <ludwig.nussel@suse.de>
+
+ pam_securetty: don't complain about missing config.
+ Not shipping a config file should be perfectly valid for distros while
+ still having eg login pre-configured to honor securetty when present.
+ PAM itself doesn't ship any template either. So avoid spamming the log
+ file if /etc/securetty wasn't found.
+
+2021-01-25 Kolja <razzeee@gmail.com>
+
+ faillock: Use pluralization via dngettext or fallback.
+
+2021-01-18 Andreas-Johann Ø Ulvestad <aj@aju.no>
+ Andreas-Johann Ø Ulvestad <aj@aju.no>
+
+ po: update translations using Weblate (Norwegian Nynorsk)
+ Currently translated at 100.0% (99 of 99 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/nn/
+
+2021-01-18 Jan Kuparinen <copper_fin@hotmail.com>
+ Jan Kuparinen <copper_fin@hotmail.com>
+
+ po: update translations using Weblate (Finnish)
+ Currently translated at 100.0% (99 of 99 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fi/
+
+2020-12-28 Dmitry V. Levin <ldv@altlinux.org>
+
+ pam_umask: fix handling of umask parameter.
+ Potential failures of strdup(3) were ignored, fix this by not using
+ strdup(3) at all.
+
+ * modules/pam_umask/pam_umask.c (struct options_t): Add const to umask
+ field, add login_umask field.
+ (parse_option): Do not use strdup.
+ (get_options): Assign pam_modutil_search_key return values
+ to options->login_umask.
+ (pam_sm_open_session): Free options.login_umask instead of
+ options.umask.
+
+2020-12-28 Sven Hartge <sven@svenhartge.de>
+
+ pam_setquota: Minor whitespace, spelling and mail address fixes.
+
+2020-12-26 Vlad <milovlad@outlook.com>
+ Vlad <milovlad@outlook.com>
+
+ po: update translations using Weblate (Romanian)
+ Currently translated at 100.0% (99 of 99 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ro/
+
+2020-12-23 Dmitry V. Levin <ldv@altlinux.org>
+
+ pam_mkhomedir: fix umask wording in documentation.
+ * modules/pam_mkhomedir/pam_mkhomedir.8.xml (umask): Fix wording.
+
+2020-12-20 Dmitry V. Levin <ldv@altlinux.org>
+
+ po: update translations using Weblate (Bulgarian)
+ Currently translated at 100.0% (122 of 122 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/bg/
+
+2020-12-17 Issam E. Maghni <issam.e.maghni@mailbox.org>
+
+ configure: test -a|o is not POSIX.
+ Fixes `test: too many arguments` when building Linux-PAM using sbase.
+ This is due to a non-POSIX syntax test ... -a ... and test ... -o ....
+
+ > The XSI extensions specifying the -a and -o binary primaries and the
+ > '(' and ')' operators have been marked obsolescent.
+
+ See https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html
+
+2020-12-08 Christian Göttsche <cgzones@googlemail.com>
+
+ pam_namespace: check for string_to_security_class failure.
+ Check for the unlikely case string_to_security_class() does not find the
+ associated SELinux security class.
+ This will only happen if the loaded SELinux policy does not define the
+ class "dir" (which no sane policy does) or querying the selinuxfs
+ fails.
+
+ Suggested by #309
+
+2020-12-08 Christian Göttsche <cgzones@googlemail.com>
+
+ pam_selinux: check for string_to_security_class failure.
+ Check for the unlikely case string_to_security_class() does not find the
+ associated SELinux security class.
+ This will only happen if the loaded SELinux policy does not define the
+ class "chr_file" (which no sane policy does) or querying the selinuxfs
+ fails.
+
+ Suggested by #309
+
+2020-12-07 Tomas Mraz <tmraz@fedoraproject.org>
+
+ Clarify the effect of 'done' in documentation.
+ The done action does not terminate the stack processing in case
+ there is a failing module with bad action up in the stack.
+
+ Fixes #307
+
+ * doc/man/pam.conf-syntax.xml: Clarify the effect of 'done'.
+
+2020-11-28 Dmitry V. Levin <ldv@altlinux.org>
+
+ .github: partially migrate from ubuntu-18.04 to ubuntu-20.04.
+ * .github/workflows/ci.yml (runs-on): Switch from ubuntu-latest to
+ ubuntu-20.04 for whitespace-errors and *-x86_64 jobs. Stick with
+ ubuntu-18.04 for *-x86 and *-x32 jobs until we figure out how to
+ obtain -lcrypt on ubuntu-20.04 for these architectures.
+
+2020-11-28 Dmitry V. Levin <ldv@altlinux.org>
+
+ ci: do not install libxcrypt-dev.
+ Apparently, both -lcrypt and -lxcrypt from ubuntu-18.04 already provide
+ crypt_r.
+
+ * ci/install-dependencies.sh (packages): Remove libxcrypt-dev.
+
+2020-11-24 Thomas M. DuBuisson <tommd@muse.dev>
+
+ pam_unix: fix memory leak on error path.
+ * modules/pam_unix/bigcrypt.c (bigcrypt) [HAVE_CRYPT_R]: Do not leak
+ cdata if crypt_r() fails.
+
+2020-11-24 Dmitry V. Levin <ldv@altlinux.org>
+
+ maint: update release procedure.
+ * maint/README-release: Update.
+
+2020-11-24 Dmitry V. Levin <ldv@altlinux.org>
+
+ po: update .po and .pot files.
+ Regenerate po/Linux-PAM.pot and po/*.po using "make -C po update-po"
+ command. This removes translations of pam_cracklib, pam_tally, and
+ pam_tally2 modules that were removed in v1.5.0.
+
+ Complements: v1.5.0~10 "Remove deprecated pam_cracklib module"
+ Complements: v1.5.0~9 "Remove deprecated pam_tally and pam_tally2 modules"
+
+2020-11-24 Dmitry V. Levin <ldv@altlinux.org>
+
+ po: cleanup POTFILES.in.
+ * po/POTFILES.in: Strip "./" prefix, sort the list.
+
+2020-11-24 Jan Kuparinen <copper_fin@hotmail.com>
+ Jan Kuparinen <copper_fin@hotmail.com>
+
+ po: update translations using Weblate (Finnish)
+ Currently translated at 100.0% (122 of 122 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fi/
+
+2020-11-24 Dmitry V. Levin <ldv@altlinux.org>
+
+ Prepare for 1.5.1 release.
+ * configure.ac (AC_INIT): Raise version to 1.5.1.
+
+ Fix various typos found using codespell tool.
+ * modules/pam_limits/limits.conf: Replace "overriden" with "overridden".
+ * modules/pam_mkhomedir/mkhomedir_helper.c (create_homedir): Replace
+ "preseves" with "preserves".
+ * modules/pam_setquota/pam_setquota.8.xml: Replace "specifed" with
+ "specified".
+ * modules/pam_setquota/pam_setquota.c (pam_sm_open_session): Replace
+ "fileystem" with "filesystem", "conditons" with "conditions".
+
+ Fix grammar: replace "an user" with "a user" everywhere.
+ * NEWS: Replace "an user" with "a user".
+ * modules/pam_faillock/pam_faillock.8.xml: Likewise.
+ * modules/pam_lastlog/pam_lastlog.8.xml: Likewise.
+ * modules/pam_limits/pam_limits.c: Likewise.
+ * modules/pam_sepermit/sepermit.conf: Likewise.
+ * modules/pam_tty_audit/pam_tty_audit.8.xml: Likewise.
+ * modules/pam_userdb/pam_userdb.c: Likewise.
+
+2020-11-24 Tomas Mraz <tmraz@fedoraproject.org>
+
+ pam_wheel: Use pam_modutil_user_in_group_uid_gid instead of reimplementation
+ The pam_modutil_user_in_group... functions use getgrouplist to check
+ the membership so they work also in setups with remote services which do
+ not provide group members in struct group.
+
+ Fixes #297
+
+ * modules/pam_wheel/pam_wheel.c (perform_check): Call pam_modutil_user_in_group_uid_gid
+ to do the group check.
+
+2020-11-24 Tomas Mraz <tmraz@fedoraproject.org>
+
+ Add NEWS entries for the 1.5.1 security fix release.
+
+2020-11-20 Tomas Mraz <tmraz@fedoraproject.org>
+
+ Second blank check with root for non-existent users must never return 1.
+ The commit af0faf66 ("pam_unix: avoid determining if user exists") introduced
+ a regression where the blank check could return 1 if root had an empty
+ password hash because in the second case the password hash of root was
+ used. We now always return 0 in this case.
+
+ The issue was found by Johannes Löthberg.
+
+ Fixes #284
+
+ * modules/pam_unix/support.c (_unix_blankpasswd): Make the loop
+ to cover the complete blank check so both existing and non existing
+ cases are identical except for the possible return value.
+
+2020-11-12 Tavian Barnes <tavianator@tavianator.com>
+
+ faillock: Add a nodelay option.
+ Fixes #295
+
+2020-11-10 Allison Karlitskaya <allison.karlitskaya@redhat.com>
+
+ libpam: add supplementary groups on priv drop.
+ Replace the setgroups(0, NULL) call in pam_modutil_drop_priv() with a
+ call to initgroups(). This makes sure that the user's supplementary
+ groups are also configured. Fall back to setgroups(0, NULL) in case the
+ initgroups() call fails.
+
+ This fixes the permission check in pam_motd: this feature was intended
+ to allow setting permissions on a motd file to prevent it from being
+ shown to users who are not a member of a particular group (for example,
+ wheel).
+
+ Closes #292
+
+2020-11-05 Tomas Mraz <tmraz@fedoraproject.org>
+
+ pam_env: deprecation notice of reading the user environment.
+ * modules/pam_env/pam_env.8.xml: Add the notice to the manual.
+ * modules/pam_env/pam_env.c (_pam_parse): Log deprecation warning
+ if user_readenv is set.
+
+2020-11-04 Andreas Schneider <asn@cryptomilk.org>
+
+ libpam: Fix memory leak on error path in _pam_start_internal()
+
+2020-11-04 Andreas Schneider <asn@cryptomilk.org>
+
+ libpam: Fix memory leak with pam_start_confdir()
+ Found with AddressSanitzer in pam_wrapper tests.
+
+ ==985738== 44 bytes in 4 blocks are definitely lost in loss record 18 of 18
+ ==985738== at 0x4839809: malloc (vg_replace_malloc.c:307)
+ ==985738== by 0x48957E1: _pam_strdup (pam_misc.c:129)
+ ==985738== by 0x489851B: _pam_start_internal (pam_start.c:85)
+ ==985738== by 0x4849C8C: libpam_pam_start_confdir (pam_wrapper.c:418)
+ ==985738== by 0x484AF94: pwrap_pam_start (pam_wrapper.c:1461)
+ ==985738== by 0x484AFEE: pam_start (pam_wrapper.c:1483)
+ ==985738== by 0x401723: setup_noconv (test_pam_wrapper.c:189)
+ ==985738== by 0x4889E82: ??? (in /usr/lib64/libcmocka.so.0.7.0)
+ ==985738== by 0x488A444: _cmocka_run_group_tests (in /usr/lib64/libcmocka.so.0.7.0)
+ ==985738== by 0x403EE5: main (test_pam_wrapper.c:1059)
+
+2020-11-04 Tomas Mraz <tmraz@fedoraproject.org>
+
+ pam_env: allow environment files without EOL at EOF.
+ Fixes #263
+
+ * modules/pam_env/pam_env.c (_assemble_line): Do not error out if at feof()
+
+2020-11-03 Dmitry V. Levin <ldv@altlinux.org>
+
+ Prepare for 1.5.0 release.
+ * configure.ac (AC_INIT): Raise version to 1.5.0.
+ * NEWS: Update.
+
+2020-11-03 ikerexxe <ipedrosa@redhat.com>
+
+ pam_ftp: fix potential memory leak.
+ modules/pam_ftp/pam_ftp.c: free anon_user before returning as it may be
+ still in use.
+
+ pam_faillock: fix unread store statement.
+ modules/pam_faillock/main.c: remove store statement since the value is
+ only read in the enclosing expression.
+
+ pam_dispatch: fix unread store statement.
+ libpam/pam_dispatch: remove store statement since the value is never
+ read.
+
+2020-10-29 Dmitry V. Levin <ldv@altlinux.org>
+
+ Remove deprecated pam_tally and pam_tally2 modules.
+ * ci/run-build-and-tests.sh (DISTCHECK_CONFIGURE_FLAGS): Remove
+ --enable-tally --enable-tally2.
+ * configure.ac: Remove --enable-tally and --enable-tally2 options.
+ (AM_CONDITIONAL): Remove COND_BUILD_PAM_TALLY and COND_BUILD_PAM_TALLY2.
+ (AC_CONFIG_FILES): Remove modules/pam_tally/Makefile and
+ modules/pam_tally2/Makefile.
+ * doc/sag/pam_tally.xml: Remove.
+ * doc/sag/pam_tally2.xml: Likewise.
+ * doc/sag/Linux-PAM_SAG.xml: Do not include pam_tally.xml and
+ pam_tally2.xml.
+ * modules/Makefile.am (MAYBE_PAM_TALLY, MAYBE_PAM_TALLY2): Remove.
+ (SUBDIRS): Remove MAYBE_PAM_TALLY and MAYBE_PAM_TALLY2.
+ * modules/pam_tally/.gitignore: Remove.
+ * modules/pam_tally/Makefile.am: Likewise.
+ * modules/pam_tally/README.xml: Likewise.
+ * modules/pam_tally/faillog.h: Likewise.
+ * modules/pam_tally/pam_tally.8.xml: Likewise.
+ * modules/pam_tally/pam_tally.c: Likewise.
+ * modules/pam_tally/pam_tally_app.c: Likewise.
+ * modules/pam_tally/tst-pam_tally: Likewise.
+ * modules/pam_tally2/.gitignore: Likewise.
+ * modules/pam_tally2/Makefile.am: Likewise.
+ * modules/pam_tally2/README.xml: Likewise.
+ * modules/pam_tally2/pam_tally2.8.xml: Likewise.
+ * modules/pam_tally2/pam_tally2.c: Likewise.
+ * modules/pam_tally2/pam_tally2_app.c: Likewise.
+ * modules/pam_tally2/tallylog.h: Likewise.
+ * modules/pam_tally2/tst-pam_tally2: Likewise.
+ * modules/pam_timestamp/pam_timestamp_check.8.xml: Fix typo by replacing
+ pam_tally with pam_timestamp.
+ * po/POTFILES.in: Remove ./modules/pam_tally/pam_tally_app.c,
+ ./modules/pam_tally/pam_tally.c, ./modules/pam_tally2/pam_tally2_app.c,
+ and ./modules/pam_tally2/pam_tally2.c.
+ * NEWS: Document this change.
+
+ Remove deprecated pam_cracklib module.
+ * ci/install-dependencies.sh: Remove libcrack2-dev.
+ * ci/run-build-and-tests.sh (DISTCHECK_CONFIGURE_FLAGS): Remove
+ --enable-cracklib=check.
+ * conf/pam.conf: Remove references to pam_cracklib.so.
+ * configure.ac: Remove --enable-cracklib option.
+ (AC_SUBST): Remove LIBCRACK.
+ (AM_CONDITIONAL): Remove COND_BUILD_PAM_CRACKLIB.
+ (AC_CONFIG_FILES): Remove modules/pam_cracklib/Makefile.
+ * doc/sag/pam_cracklib.xml: Remove.
+ * doc/sag/Linux-PAM_SAG.xml: Do not include pam_cracklib.xml.
+ * modules/Makefile.am (MAYBE_PAM_CRACKLIB): Remove.
+ (SUBDIRS): Remove MAYBE_PAM_CRACKLIB.
+ * modules/pam_cracklib/Makefile.am: Remove.
+ * modules/pam_cracklib/README.xml: Likewise.
+ * modules/pam_cracklib/pam_cracklib.8.xml: Likewise.
+ * modules/pam_cracklib/pam_cracklib.c: Likewise.
+ * modules/pam_cracklib/tst-pam_cracklib: Likewise.
+ * xtests/tst-pam_cracklib1.c: Likewise.
+ * xtests/tst-pam_cracklib1.pamd: Likewise.
+ * xtests/tst-pam_cracklib2.c: Likewise.
+ * xtests/tst-pam_cracklib2.pamd: Likewise.
+ * modules/pam_pwhistory/pam_pwhistory.8.xml: Replace pam_cracklib
+ in examples with pam_passwdqc.
+ * modules/pam_unix/pam_unix.8.xml: Likewise.
+ * po/POTFILES.in: Remove ./modules/pam_cracklib/pam_cracklib.c.
+ * xtests/.gitignore: Remove tst-pam_cracklib1 and tst-pam_cracklib2.
+ * xtests/Makefile.am (EXTRA_DIST): Remove tst-pam_cracklib1.pamd
+ and tst-pam_cracklib2.pamd.
+ (XTESTS): Remove tst-pam_cracklib1 and tst-pam_cracklib2.
+ * NEWS: Document this change.
+
+2020-10-27 DDoSolitary <DDoSolitary@gmail.com>
+
+ pam_env: fix a typo in doc of pam_env.conf.
+
+2020-10-25 Christian Göttsche <cgzones@googlemail.com>
+
+ Add missing format function attributes and enable -Wmissing-format-attribute
+ Exported functions already have these attributes, add them to other functions.
+ This enables compilers to find format specifier mismatches, like:
+
+ foo_print("Hello %d", "world")
+
+ * m4/warn_lang_flags.m4 (gl_WARN_ADD): Add -Wmissing-format-attribute.
+ * conf/pam_conv1/Makefile.am (AM_CFLAGS): Add -I$(top_srcdir)/libpam/include.
+ * conf/pam_conv1/pam_conv_y.y: Include <security/_pam_types.h>.
+ (yyerror): Add printf format attribute.
+ * modules/pam_pwhistory/opasswd.c (helper_log_err): Likewise.
+ * modules/pam_rootok/pam_rootok.c (log_callback): Likewise.
+ * modules/pam_tally/pam_tally.c (tally_log): Likewise.
+ * modules/pam_tally2/pam_tally2.c (tally_log): Likewise.
+ * modules/pam_unix/passverify.c (helper_log_err): Likewise.
+
+2020-10-21 Milo Casagrande <milo@milo.name>
+ Milo Casagrande <milo@milo.name>
+
+ po: update translations using Weblate (Italian)
+ Currently translated at 100.0% (122 of 122 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/it/
+
+2020-10-21 Yaron Shahrabani <sh.yaron@gmail.com>
+ Yaron Shahrabani <sh.yaron@gmail.com>
+
+ po: update translations using Weblate (Hebrew)
+ Currently translated at 100.0% (122 of 122 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/he/
+
+2020-10-21 ikerexxe <ipedrosa@redhat.com>
+
+ pam_motd: unset prompt value to drop privileges.
+ modules/pam_motd/pam_motd.c: set NULL value instead of "key user" for the
+ prompt when dropping privileges.
+
+2020-10-20 Tomas Mraz <tmraz@fedoraproject.org>
+
+ pam_modutil_sanitize_fds: Add explicit casts to avoid warnings.
+
+ Revert "libpam/pam_modutil_sanitize.c: optimize the way to close fds"
+ This reverts commit 1b087edc7f05237bf5eccc405704cd82b848e761.
+
+2020-10-14 ikerexxe <ipedrosa@redhat.com>
+
+ pam_motd: document file filtering.
+ modules/pam_motd/pam_motd.8.xml: document file filtering of motd
+ messages.
+ NEWS: annotate change.
+
+2020-10-14 ikerexxe <ipedrosa@redhat.com>
+
+ pam_motd: filter motd by user and group.
+ modules/pam_motd/pam_motd.c: filter motd by user and group owning the
+ proper files. This is achieved by changing the ids of the process
+ reading the files from root to the target user.
+
+ Resolves:
+ https://bugzilla.redhat.com/show_bug.cgi?id=1861640
+
+2020-10-13 Mikhail Labiuk <m.labyuk@omprussia.ru>
+
+ pam_faillock: fix invalid error message.
+ args_parse function pass "conf=" argument to set_conf_opt() after handling by self.
+ set_conf_opt is not able to handle "conf" argument and write error:
+ sddm-helper[415]: pam_faillock(sddm:auth): Unknown option: conf
+
+2020-10-05 ikerexxe <ipedrosa@redhat.com>
+
+ pam_namespace: polyinstantiation refer to gdm doc.
+ modules/pam_namespace/pam_namespace.8.xml: delete obsolete information
+ about polyinstantiation and refer to gdm's documentation.
+
+ Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1861841
+
+2020-09-30 Anton D. Kachalov <rnouse@google.com>
+
+ Prevent SEGFAULT for unknown UID.
+ When running systemd service with DynamicUser being set, the dynamic UID
+ might be not mapped to user name (/etc/nsswitch.conf is not configured
+ with systemd nss module).
+
+ The getuidname() routine might return NULL and this is not checked by callee.
+
+2020-09-10 ikerexxe <ipedrosa@redhat.com>
+
+ pam_wheel: clarify use_uid option in man page.
+ modules/pam_wheel/pam_wheel.8.xml: indicate that use_uid option uses the
+ real uid of the calling process.
+
+2020-09-10 ikerexxe <ipedrosa@redhat.com>
+
+ pam_wheel: if getlogin fails fallback to PAM_RUSER.
+ modules/pam_wheel/pam_wheel.c: if getlogin fails to obtain the real user
+ ID, then try with PAM_RUSER.
+
+ Resolves:
+ https://bugzilla.redhat.com/show_bug.cgi?id=1866866
+
+2020-09-10 ikerexxe <ipedrosa@redhat.com>
+
+ pam_wheel: improve coding style.
+ modules/pam_wheel/pam_wheel.c: improve indentation and explicitly state
+ condition statements
+
+2020-08-08 Dmitry V. Levin <ldv@altlinux.org>
+
+ configure: add --disable-unix option.
+ Some distributions do not build pam_unix, e.g. ALT uses pam_tcb instead.
+ Add a configure option to disable build of pam_unix so that those who
+ choose not to build pam_unix no longer have to edit modules/Makefile.am
+ file. The default is unchanged, i.e. build of pam_unix is enabled.
+
+ * configure.ac (AC_ARG_ENABLE): Add unix.
+ (AM_CONDITIONAL): Add COND_BUILD_PAM_UNIX.
+ * modules/Makefile.am [COND_BUILD_PAM_UNIX] (MAYBE_PAM_UNIX): Define.
+ (SUBDIRS): Replace pam_unix with $(COND_BUILD_PAM_UNIX).
+
+2020-08-07 Dmitry V. Levin <ldv@altlinux.org>
+
+ Build all installed executables with -Wl,-z,now if available.
+ This makes them built with full RELRO if -Wl,-z,relro is specified.
+
+ * m4/ld-z-now.m4: New file.
+ * m4/.gitignore: Add it to exclude list.
+ * configure.ac: Call PAM_LD_Z_NOW.
+ (EXE_LDFLAGS): Append $ZNOW_LDFLAGS.
+
+2020-08-07 Dmitry V. Levin <ldv@altlinux.org>
+
+ modules: build all helpers with proper CFLAGS and LDFLAGS.
+ This makes all installed executables built with @EXE_CFLAGS@ and
+ @EXE_LDFLAGS@.
+
+ * modules/pam_mkhomedir/Makefile.am (mkhomedir_helper_CFLAGS,
+ mkhomedir_helper_LDFLAGS): New variables.
+ * modules/pam_tally/Makefile.am (pam_tally_CFLAGS, pam_tally_LDFLAGS):
+ Likewise.
+ * modules/pam_tally2/Makefile.am (pam_tally2_CFLAGS,
+ pam_tally2_LDFLAGS): Likewise.
+
+2020-08-07 Dmitry V. Levin <ldv@altlinux.org>
+
+ build: rename PIE_* AC_SUBST variables to EXE_*
+ There are going to be other options added to CFLAGS and LDFLAGS
+ of executables made along with modules.
+
+ * configure.ac (EXE_CFLAGS, EXE_LDFLAGS): New variables initialized from
+ PIE_CFLAGS and PIE_LDFLAGS, respectively. AC_SUBST them instead of
+ PIE_CFLAGS and PIE_LDFLAGS. All users updated.
+
+2020-08-07 Dmitry V. Levin <ldv@altlinux.org>
+
+ m4: make libprelude-config diagnostics less noisy.
+ Before this change, every normal build of Linux-PAM used to contain
+ the following diagnostics:
+
+ checking for libprelude-config... no
+ checking for libprelude - version >= 0.9.0... no
+ *** The libprelude-config script installed by LIBPRELUDE could not be found
+ *** If LIBPRELUDE was installed in PREFIX, make sure PREFIX/bin is in
+ *** your path, or set the LIBPRELUDE_CONFIG environment variable to the
+ *** full path to libprelude-config.
+
+ Given that libprelude-config is rarely used nowadays,
+ the first two lines of diagnostics should be enough.
+
+ * m4/libprelude.m4 (AM_PATH_LIBPRELUDE): When libprelude-config
+ is not found, do not print the lengthy diagnostics unless
+ --with-libprelude-prefix was specified.
+
+2020-08-07 Dmitry V. Levin <ldv@altlinux.org>
+
+ configure.ac: rewrite --disable-pie and -fpie/pie check.
+ * configure.ac: Rewrite -fpie/pie check using AC_LINK_IFELSE to make
+ the code more readable. Add --enable-pie=check support and make it
+ the default, terminate if --enable-pie is specified but -fpie/pie
+ support is not available.
+
+ m4: rewrite ld --no-undefined check.
+ * m4/ld-no-undefined.m4: Rewrite using AC_LINK_IFELSE to create a more readable
+ autoconf macro.
+
+ m4: rewrite ld --as-needed check.
+ * m4/ld-as-needed.m4: Rewrite using AC_LINK_IFELSE to create a more readable
+ autoconf macro.
+
+ m4: rewrite ld -O1 check.
+ * m4/ld-O1.m4: Rewrite using AC_LINK_IFELSE to create a more readable
+ autoconf macro.
+
+2020-08-07 Dmitry V. Levin <ldv@altlinux.org>
+
+ m4: rewrite __attribute__((unused)) check.
+ Rewrite using AC_CACHE_CHECK to create a more readable autoconf macro.
+
+ * m4/attribute.m4: New file.
+ * m4/japhar_grep_cflags.m4: Remove.
+ * m4/.gitignore: Replace japhar_grep_cflags.m4 with attribute.m4.
+ * configure.ac: Replace AC_C___ATTRIBUTE__ with PAM_ATTRIBUTE_UNUSED.
+
+2020-08-06 Dmitry V. Levin <ldv@altlinux.org>
+
+ build: add -Wcast-align=strict to WARN_CFLAGS.
+ This way -Wcast-align will be tested regardless of the target machine.
+
+ * m4/warn_lang_flags.m4: Add gl_WARN_ADD([-Wcast-align=strict]).
+
+2020-08-06 Dmitry V. Levin <ldv@altlinux.org>
+
+ configure.ac: rewrite WARN_CFLAGS initialization.
+ As the old machinery was not prepared for adding compiler options
+ conditionally when the compiler supports them, replace it with
+ a new machinery that implements this.
+
+ * m4/warnings.m4: New file.
+ * m4/warn_lang_flags.m4: Likewise.
+ * m4/.gitignore: Add exclusions for them.
+ * m4/japhar_grep_cflags.m4 (JAPHAR_GREP_CFLAGS): Remove.
+ * configure.ac: Call pam_WARN_LANG_FLAGS. Remove all uses
+ of JAPHAR_GREP_CFLAGS.
+
+2020-08-06 Dmitry V. Levin <ldv@altlinux.org>
+
+ Fix -Wcast-align compilation warnings on arm.
+ Apparently, gcc is also not smart enough to infer the alignment
+ of structure fields, for details see
+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89133
+
+ Use unions to avoid these casts altogether, this fixes compilation
+ warnings reported by gcc on arm, e.g.:
+
+ md5.c: In function 'MD5Update':
+ md5.c:92:35: error: cast increases required alignment of target type [-Werror=cast-align]
+ 92 | MD5Name(MD5Transform)(ctx->buf, (uint32 *) ctx->in);
+ | ^
+ md5.c:101:35: error: cast increases required alignment of target type [-Werror=cast-align]
+ 101 | MD5Name(MD5Transform)(ctx->buf, (uint32 *) ctx->in);
+ | ^
+ md5.c: In function 'MD5Final':
+ md5.c:136:35: error: cast increases required alignment of target type [-Werror=cast-align]
+ 136 | MD5Name(MD5Transform)(ctx->buf, (uint32 *) ctx->in);
+ | ^
+ md5.c:147:9: error: cast increases required alignment of target type [-Werror=cast-align]
+ 147 | memcpy((uint32 *)ctx->in + 14, ctx->bits, 2*sizeof(uint32));
+ | ^
+ md5.c:149:34: error: cast increases required alignment of target type [-Werror=cast-align]
+ 149 | MD5Name(MD5Transform)(ctx->buf, (uint32 *) ctx->in);
+ | ^
+
+ * modules/pam_namespace/md5.h (struct MD5Context): Replace "buf" and
+ "in" fields with unions. All users updated.
+ * modules/pam_unix/md5.h (struct MD5Context): Likewise.
+ * modules/pam_timestamp/sha1.h (struct sha1_context.pending): Replace
+ with a union. All users updated.
+
+ Complements: v1.4.0~195 ("Fix most of clang -Wcast-align compilation warnings")
+
+2020-08-05 Dmitry V. Levin <ldv@altlinux.org>
+
+ pam_namespace: fix big-endian check in md5 implementation.
+ * modules/pam_namespace/md5.c: Do not check against the list of
+ architectures that are known to be little-endian, instead check
+ for WORDS_BIGENDIAN macro defined by AC_C_BIGENDIAN autoconf macro
+ on big-endian platforms.
+
+2020-08-05 Christian Göttsche <cgzones@googlemail.com>
+
+ pam_namespace: skip context translation.
+ These retrieved contexts are just passed to libselinux functions and not
+ printed or otherwise made available to the outside, so a context
+ translation to human readable MCS/MLS labels is not needed.
+ (see man:setrans.conf(5))
+
+ pam_xauth: skip context translation.
+ The retrieved context is just passed to libselinux functions and not
+ printed or otherwise made available to the outside, so a context
+ translation to human readable MCS/MLS labels is not needed.
+ (see man:setrans.conf(5))
+
+ pam_xauth: replace deprecated security_context_t.
+ libselinux 3.1 deprecated the typedef security_context_t.
+ Use the underlaying type.
+
+ pam_unix: skip context translation.
+ These retrieved contexts are just passed to libselinux functions and not
+ printed or otherwise made available to the outside, so a context
+ translation to human readable MCS/MLS labels is not needed.
+ (see man:setrans.conf(5))
+
+ pam_unix: replace deprecated security_context_t.
+ libselinux 3.1 deprecated the typedef security_context_t.
+ Use the underlaying type.
+
+ pam_rootok: skip context translation.
+ The retrieved context is just passed to the libselinux function
+ 'selinux_check_access()', so a context translation to human readable
+ MCS/MLS labels is not needed. (see man:setrans.conf(5))
+
+ pam_rootok: replace deprecated security_context_t.
+ libselinux 3.1 deprecated the typedef security_context_t.
+ Use the underlaying type.
+
+ pam_namespace: replace deprecated matchpathcon.
+ The matchpathcon family is deprecated.
+ Use the selabel family.
+
+ pam_namespace: replace deprecated security_context_t.
+ libselinux 3.1 deprecated the typedef security_context_t.
+ Use the underlaying type.
+
+2020-08-03 Christian Göttsche <cgzones@googlemail.com>
+
+ autotools: enable warnings.
+
+2020-08-03 Christian Göttsche <cgzones@googlemail.com>
+
+ autotools: update deprecated macros.
+ see https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Obsolete-Macros.html
+
+ - update AC_HELP_STRING to AS_HELP_STRING
+ - update AC_TRY_COMPILE to AC_COMPILE_IFELSE
+ - update AC_TRY_RUN to AC_RUN_IFELSE
+ - update AC_TRY_LINK to AC_LINK_IFELSE
+
+2020-08-03 Issam Maghni <concatime@users.noreply.github.com>
+
+ configure.ac: fix typo in --with-kernel-overflow-uid= option to match its documentation
+
+2020-07-22 Tomas Mraz <tmraz@fedoraproject.org>
+
+ pam_unix: Add comment for the ignored PAM_AUTHTOK_ERR case.
+ * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Add comment
+ about the reason for ignoring PAM_AUTHTOK_ERR.
+
+2020-07-22 Tomas Mraz <tmraz@fedoraproject.org>
+
+ Fix missing initialization of daysleft.
+ The daysleft otherwise stays uninitialized if there is no shadow entry.
+
+ Regression from commit f5adefa.
+
+ Fixes #255
+
+ * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Initialize daysleft.
+
+2020-07-20 Charles Lee <lchopn@gmail.com>
+
+ po: update translations using Weblate (Chinese (Simplified))
+ Currently translated at 100.0% (122 of 122 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/zh_CN/
+
+2020-07-20 ikerexxe <ipedrosa@redhat.com>
+
+ pam_pwhistory: add helper to handle SELinux.
+ The purpose of the helper is to enable tighter confinement of login and
+ password changing services. The helper is thus called only when SELinux
+ is enabled on the system.
+
+ Resolves: https://github.com/linux-pam/linux-pam/pull/247
+
+2020-07-19 A S Alam <amanpreet.alam@gmail.com>
+
+ po: update translations using Weblate (Punjabi)
+ Currently translated at 100.0% (122 of 122 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pa/
+
+2020-07-15 Dmitry V. Levin <ldv@altlinux.org>
+
+ pam_inline.h: cleanup pam_read_passwords a bit.
+ * libpam/include/pam_inline.h (pam_read_passwords): Increment pptr once
+ instead of using pptr+1 several times. This change is not expected
+ to affect the code generated by the compiler as the latter is likely
+ to perform the optimization itself.
+
+2020-07-15 ikerexxe <ipedrosa@redhat.com>
+
+ Move read_passwords function from pam_unix to pam_inline.h.
+ [ldv: rewrote commit message]
+
+ * modules/pam_unix/passverify.h (read_passwords): Remove prototype.
+ * modules/pam_unix/passverify.c (read_passwords): Move ...
+ * libpam/include/pam_inline.h: ... here, rename to pam_read_passwords,
+ add static inline qualifiers.
+ Include <unistd.h> and <errno.h>.
+ * modules/pam_unix/unix_chkpwd.c: Include "pam_inline.h".
+ (main): Replace read_passwords with pam_read_passwords.
+ * modules/pam_unix/unix_update.c: Include "pam_inline.h".
+ (set_password): Replace read_passwords with pam_read_passwords.
+
+2020-07-15 Dmitry V. Levin <ldv@altlinux.org>
+
+ pam_unix: use PAM_MAX_RESP_SIZE instead of its alias MAXPASS.
+ * modules/pam_unix/passverify.h (MAXPASS): Remove.
+ * modules/pam_unix/passverify.c (read_passwords): Replace MAXPASS
+ with PAM_MAX_RESP_SIZE.
+ * modules/pam_unix/pam_unix_passwd.c (_pam_unix_approve_pass): Likewise.
+ * modules/pam_unix/support.c (_unix_verify_password): Likewise.
+ * modules/pam_unix/unix_chkpwd.c (main): Likewise.
+ * modules/pam_unix/unix_update.c (set_password): Likewise.
+
+2020-07-09 Lucas Ramage <ramage.lucas@protonmail.com>
+
+ pam_stress: create man page.
+ Resolves: https://github.com/linux-pam/linux-pam/issues/148
+
+ * modules/pam_stress/README: Remove.
+ * modules/pam_stress/README.xml: New file.
+ * modules/pam_stress/pam_stress.8.xml: Likewise.
+ * modules/pam_stress/Makefile.am (MAINTAINERCLEANFILES): Add
+ $(MANS) and README.
+ (EXTRA_DIST): Add $(XMLS).
+ (XMLS): Add README.xml and pam_stress.8.xml.
+ [HAVE_DOC] (dist_man_MANS): Add pam_stress.8.
+ [ENABLE_REGENERATE_MAN] (dist_noinst_DATA): Add README.
+ [ENABLE_REGENERATE_MAN]: Include $(top_srcdir)/Make.xml.rules.
+ * modules/pam_stress/.gitignore: Remove.
+
+ Resolves: https://github.com/linux-pam/linux-pam/pull/184
+
+2020-07-05 Dmitry V. Levin <ldv@altlinux.org>
+
+ po: update translations using Weblate (Slovak)
+ Currently translated at 100.0% (122 of 122 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/sk/
+
+ po: update translations using Weblate (Portuguese (Brazil))
+
+ Currently translated at 100.0% (122 of 122 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt_BR/
+
+ po: update translations using Weblate (Dutch)
+
+ Currently translated at 100.0% (122 of 122 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/nl/
+
+ po: update translations using Weblate (Italian)
+
+ Currently translated at 100.0% (122 of 122 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/it/
+
+ po: update translations using Weblate (German)
+
+ Currently translated at 100.0% (122 of 122 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/de/
+
+ po: update translations using Weblate (Catalan)
+
+ Currently translated at 100.0% (122 of 122 strings).
+
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ca/
+
+2020-07-05 Yaron Shahrabani <sh.yaron@gmail.com>
+
+ Translated using Weblate (Hebrew)
+ Currently translated at 75.4% (92 of 122 strings)
+
+ Translation: linux-pam/master
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/he/
+
+ Translated using Weblate (Arabic)
+
+ Currently translated at 61.4% (75 of 122 strings)
+
+ Translation: linux-pam/master
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ar/
+
+2020-07-02 Dmitry V. Levin <ldv@altlinux.org>
+
+ misc_conv: fix potential information leak on error path.
+ * libpam_misc/misc_conv.c (read_string): Clear the stack buffer from
+ data read earlier from stdin in case of a read error.
+
+2020-07-01 ikerexxe <ipedrosa@redhat.com>
+
+ pam_loginuid: fix unlikely negative 3rd argument of strncmp on error path
+ [ldv: rewrote commit message]
+
+ * modules/pam_loginuid/pam_loginuid.c (set_loginuid): Do not pass to
+ strncmp the return value of pam_modutil_read in an unlikely case when
+ the latter fails to read from /proc/self/uid_map.
+
+2020-07-01 ikerexxe <ipedrosa@redhat.com>
+
+ pam_namespace, pam_mkhomedir: fix unlikely descriptor leaks on error path
+ [ldv: rewrote commit message]
+
+ * modules/pam_mkhomedir/mkhomedir_helper.c (create_homedir): Close just
+ opened file descriptor "srcfd" in an unlikely case when it cannot be
+ fstat'ed.
+ * modules/pam_namespace/pam_namespace.c (create_instance): Close just
+ opened file descriptor "fd" in an unlikely case when it cannot be
+ fstat'ed.
+
+2020-07-01 ikerexxe <ipedrosa@redhat.com>
+
+ pam_rootok: fix use of va_list.
+ CPPCHECK_WARNING (CWE-843):
+ error[va_end_missing]: va_list 'ap' was opened but not closed by
+ va_end().
+
+ [ldv: According to POSIX documentation, each invocation of va_start()
+ must be matched by a corresponding invocation of va_end().
+
+ According to the GNU libc documentation, "with most C compilers,
+ calling 'va_end' does nothing. This is always true in the GNU C
+ compiler. But you might as well call 'va_end' just in case your
+ program is someday compiled with a peculiar compiler."
+
+ The main reason for applying this change is to pacify static analysis
+ tools like cppcheck that insist on strict POSIX conformance in this
+ respect.]
+
+2020-07-01 ikerexxe <ipedrosa@redhat.com>
+
+ misc_conv: fix potential stack buffer overflow.
+ [ldv: rewrote commit message]
+
+ * libpam_misc/misc_conv.c (read_string): Use _pam_overwrite_n instead
+ of _pam_overwrite to clear stack buffer "line" because the latter does
+ not have to be null-terminated.
+
+2020-07-01 Yaron Shahrabani <sh.yaron@gmail.com>
+
+ Translated using Weblate (Hebrew)
+ Currently translated at 60.6% (74 of 122 strings)
+
+ Translation: linux-pam/master
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/he/
+
+2020-06-30 Dmitry V. Levin <ldv@altlinux.org>
+
+ misc_conv: remove redundant check.
+ * libpam_misc/misc_conv.c (read_string): Remove redundant nc > 0
+ check as it has already been tested in the previous condition.
+
+2020-06-29 ikerexxe <ipedrosa@redhat.com>
+
+ pam_limits: clarify configuration file.
+ Resolves: https://github.com/linux-pam/linux-pam/pull/249
+
+2020-06-26 Dmitry V. Levin <ldv@altlinux.org>
+
+ .gitignore: move doc-specific entries to doc/.gitignore.
+
+ .gitignore: move module-specific entries to modules/.gitignore.
+
+2020-06-26 ikerexxe <ipedrosa@redhat.com>
+
+ pam_namespace: add systemd service file to gitignore.
+ * modules/pam_namespace/.gitignore: Add pam_namespace.service.
+
+ Complements: v1.4.0~247 ("pam_namespace: secure tmp-inst directories")
+
+2020-06-26 ikerexxe <ipedrosa@redhat.com>
+
+ pam_faillock: add faillock executable to gitignore.
+ * modules/pam_faillock/.gitignore: Add faillock.
+
+ Complements: v1.4.0~76 ("pam_faillock: New module for locking after multiple auth failures")
+
+2020-06-25 ikerexxe <ipedrosa@redhat.com>
+
+ pam_env: clarify user_readenv option.
+
+2020-06-24 Baurzhan Muftakhidinov <baurthefirst@gmail.com>
+
+ Translated using Weblate (Kazakh)
+ Currently translated at 100.0% (122 of 122 strings)
+
+ Translation: linux-pam/master
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/kk/
+
+2020-06-24 Yaron Shahrabani <sh.yaron@gmail.com>
+
+ Translated using Weblate (Hebrew)
+ Currently translated at 44.2% (54 of 122 strings)
+
+ Translation: linux-pam/master
+ Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/he/
+
+2020-06-22 Vito Caputo <vcaputo@pengaru.com>
+
+ modules/pam_limits: add support for nonewprivs.
+ Expose prctl(PR_SET_NO_NEW_PRIVS) as "nonewprivs" item.
+
+ The valid values are a boolean toggle 0/1 to keep semi-consistent
+ with the other numeric limits. It's slightly awkward as this is
+ an oddball relative to the other items in pam_limits but outside
+ of the item value itself this does seem at home in pam_limits.
+
+ Resolves: https://github.com/linux-pam/linux-pam/issues/224
+ Resolves: https://github.com/linux-pam/linux-pam/pull/225
+
+2020-06-17 ikerexxe <ipedrosa@redhat.com>
+
+ pam_usertype: avoid determining if user exists.
+ Taking a look at the time for the password prompt to appear it was
+ possible to determine if a user existed in a system. Solved it by
+ matching the runtime until the password prompt was shown by always
+ checking the password hash for an existing and a non-existing user.
+
+ Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1629598
+
+2020-06-17 ikerexxe <ipedrosa@redhat.com>
+
+ pam_unix: avoid determining if user exists.
+ Taking a look at the time for the password prompt to appear it was
+ possible to determine if a user existed in a system. Solved it by
+ matching the runtime until the password prompt was shown by always
+ checking the password hash for an existing and a non-existing user.
+
+ Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1629598
+
+2020-06-17 ikerexxe <ipedrosa@redhat.com>
+
+ pam_faillock: change /run/faillock/$USER permissions to 0660.
+ Nowadays, /run/faillock/$USER files have user:root ownership and 0600
+ permissions. This forces the process that writes to these files to have
+ CAP_DAC_OVERRIDE capabilites. Just by changing the permissions to 0660
+ the capability can be removed, which leads to a more secure system.
+
+ Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1661822
+
+2020-06-16 Dmitry V. Levin <ldv@altlinux.org>
+
+ pam_modutil_check_user_in_passwd: avoid timing attacks.
+ * libpam/pam_modutil_check_user.c (pam_modutil_check_user_in_passwd): Do
+ not exit the file reading loop when the user is found, continue reading
+ the file to avoid timing attacks.
+
+2020-06-15 Fabrice Fontaine <fontaine.fabrice@gmail.com>
+
+ pam_faillock: fix build on musl.
+ Use pam_modutil_check_user_in_passwd in pam_faillock.c instead of
+ fgetpwent_r which is not available on musl.
+
+ Resolves: https://github.com/linux-pam/linux-pam/issues/236
+ Resolves: https://github.com/linux-pam/linux-pam/pull/237
+ Fixes: http://autobuild.buildroot.org/results/0432736ffee376dd84757469434a4bbcfdcdaf4b
+
+2020-06-15 Fabrice Fontaine <fontaine.fabrice@gmail.com>
+ Dmitry V. Levin <ldv@altlinux.org>
+
+ Move check_user_in_passwd from pam_localuser.c to pam_modutil.
+
+ * modules/pam_localuser/pam_localuser.c: Include
+ <security/pam_modutil.h>.
+ (pam_sm_authenticate): Replace check_user_in_passwd with
+ pam_modutil_check_user_in_passwd.
+ (check_user_in_passwd): Rename to pam_modutil_check_user_in_passwd,
+ move to ...
+ * libpam/pam_modutil_check_user.c: ... new file.
+ * libpam/Makefile.am (libpam_la_SOURCES): Add pam_modutil_check_user.c.
+ * libpam/include/security/pam_modutil.h
+ (pam_modutil_check_user_in_passwd): New function declaration.
+ * libpam/libpam.map (LIBPAM_MODUTIL_1.4.1): New interface.
+
+2020-06-15 Dmitry V. Levin <ldv@altlinux.org>
+
+ configure.ac: fix non-portable use of test builtin.
+ Portable code should not assume that test builtin supports == operator.
+
+ * configure.ac (opt_uidmin, opt_sysuidmin, opt_kerneloverflowuid): Fix
+ initialization.
+
+ Resolves: https://github.com/linux-pam/linux-pam/issues/241
+ Fixes: 926d7935e ("pam_usertype: new module to tell if uid is in login.defs ranges")
+
+2020-06-11 Fabrice Fontaine <fontaine.fabrice@gmail.com>
+
+ configure.ac: fix build failure when crypt() does not require libcrypt.
+ Since commit 522246d20e4cd92fadc2d760228cb7e78cbeb4c5, the build fails
+ if "none required" is returned by AC_SEARCH_LIBS for libcrypt.
+
+ Resolves: https://github.com/linux-pam/linux-pam/pull/235
+ Fixes: http://autobuild.buildroot.org/results/92b3dd7c984d2b843ac9aacacd69eec99f28743e
+ Fixes: v1.4.0~228 ("Use cached 'crypt' library result correctly")
+
+2020-06-04 Dmitry V. Levin <ldv@altlinux.org>
+
+ build: do not generate tarballs compressed with bzip2 and gzip.
+ There are tarballs compressed with xz, that should be enough.
+
+ * Makefile.am (AUTOMAKE_OPTIONS): Remove dist-bzip2, add no-dist-gzip.
+ (releasedocs): Do not create Linux-PAM-$(VERSION)-docs.tar.bz2
+ and Linux-PAM-$(VERSION)-docs.tar.gz.
+
2020-06-04 Dmitry V. Levin <ldv@altlinux.org>
maint: document release procedure.
diff --git a/Make.xml.rules.in b/Make.xml.rules.in
index daa1b97b..27bb510e 100644
--- a/Make.xml.rules.in
+++ b/Make.xml.rules.in
@@ -21,6 +21,6 @@ README: README.xml
%.8: %.8.xml
$(XMLLINT) --nonet --xinclude --postvalid --noout $<
- $(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) --xinclude @STRINGPARAM_VENDORDIR@ --nonet $(top_srcdir)/doc/custom-man.xsl $<
+ $(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) --xinclude @STRINGPARAM_VENDORDIR@ @STRINGPARAM_HMAC@ --nonet $(top_srcdir)/doc/custom-man.xsl $<
#CLEANFILES += $(man_MANS) README
diff --git a/Makefile.am b/Makefile.am
index 6571e2f7..deb25268 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,7 +2,7 @@
# Copyright (c) 2005, 2006, 2007 Thorsten Kukuk <kukuk@thkukuk.de>
#
-AUTOMAKE_OPTIONS = 1.9 gnu dist-bzip2 dist-xz check-news
+AUTOMAKE_OPTIONS = 1.9 gnu dist-xz no-dist-gzip check-news
SUBDIRS = libpam tests libpamc libpam_misc modules po conf examples xtests
@@ -24,10 +24,6 @@ releasedocs:
rm -rf Linux-PAM-$(VERSION)
mkdir -p Linux-PAM-$(VERSION)/doc
make -C doc releasedocs
- tar zfc Linux-PAM-$(VERSION)-docs.tar.gz \
- Linux-PAM-$(VERSION)/doc
- tar jfc Linux-PAM-$(VERSION)-docs.tar.bz2 \
- Linux-PAM-$(VERSION)/doc
tar Jfc Linux-PAM-$(VERSION)-docs.tar.xz \
Linux-PAM-$(VERSION)/doc
rm -rf Linux-PAM-$(VERSION)
diff --git a/Makefile.in b/Makefile.in
index e9603c1a..92c0d026 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -94,18 +94,21 @@ host_triplet = @host@
@HAVE_DOC_TRUE@am__append_1 = doc
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/japhar_grep_cflags.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \
+ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/intlmacosx.m4 \
$(top_srcdir)/m4/jh_path_xml_catalog.m4 \
$(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \
- $(top_srcdir)/m4/ld-no-undefined.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/ld-no-undefined.m4 \
+ $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/warn_lang_flags.m4 \
+ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
@@ -151,8 +154,8 @@ am__recursive_targets = \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
cscope distdir distdir-am dist dist-all distcheck
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
- $(LISP)config.h.in
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
+ config.h.in
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
@@ -221,9 +224,11 @@ am__relativize = \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 $(distdir).tar.xz
GZIP_ENV = --best
-DIST_TARGETS = dist-xz dist-bzip2 dist-gzip
+DIST_ARCHIVES = $(distdir).tar.xz
+DIST_TARGETS = dist-xz
+# Exists only to be overridden by the user if desired.
+AM_DISTCHECK_DVI_TARGET = dvi
distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@@ -246,6 +251,9 @@ CC_FOR_BUILD = @CC_FOR_BUILD@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CRYPTO_LIBS = @CRYPTO_LIBS@
+CRYPT_CFLAGS = @CRYPT_CFLAGS@
+CRYPT_LIBS = @CRYPT_LIBS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
@@ -259,6 +267,8 @@ ECONF_CFLAGS = @ECONF_CFLAGS@
ECONF_LIBS = @ECONF_LIBS@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
+EXE_CFLAGS = @EXE_CFLAGS@
+EXE_LDFLAGS = @EXE_LDFLAGS@
FGREP = @FGREP@
FO2PDF = @FO2PDF@
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
@@ -278,7 +288,6 @@ LEX = @LEX@
LEXLIB = @LEXLIB@
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
LIBAUDIT = @LIBAUDIT@
-LIBCRACK = @LIBCRACK@
LIBCRYPT = @LIBCRYPT@
LIBDB = @LIBDB@
LIBDL = @LIBDL@
@@ -325,8 +334,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PIE_CFLAGS = @PIE_CFLAGS@
-PIE_LDFLAGS = @PIE_LDFLAGS@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -337,6 +344,7 @@ SECUREDIR = @SECUREDIR@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+STRINGPARAM_HMAC = @STRINGPARAM_HMAC@
STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@
STRIP = @STRIP@
TIRPC_CFLAGS = @TIRPC_CFLAGS@
@@ -386,7 +394,6 @@ htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
-libc_cv_fpie = @libc_cv_fpie@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
@@ -394,9 +401,6 @@ localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
-pam_cv_ld_O1 = @pam_cv_ld_O1@
-pam_cv_ld_as_needed = @pam_cv_ld_as_needed@
-pam_cv_ld_no_undefined = @pam_cv_ld_no_undefined@
pam_xauth_path = @pam_xauth_path@
pdfdir = @pdfdir@
prefix = @prefix@
@@ -406,11 +410,12 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+systemdunitdir = @systemdunitdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = 1.9 gnu dist-bzip2 dist-xz check-news
+AUTOMAKE_OPTIONS = 1.9 gnu dist-xz no-dist-gzip check-news
SUBDIRS = libpam tests libpamc libpam_misc modules po conf examples \
xtests $(am__append_1)
CLEANFILES = *~
@@ -666,6 +671,7 @@ distdir-am: $(DISTFILES)
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
$(am__post_remove_distdir)
+
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__post_remove_distdir)
@@ -677,6 +683,10 @@ dist-xz: distdir
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__post_remove_distdir)
+dist-zstd: distdir
+ tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
+ $(am__post_remove_distdir)
+
dist-tarZ: distdir
@echo WARNING: "Support for distribution archives compressed with" \
"legacy program 'compress' is deprecated." >&2
@@ -719,6 +729,8 @@ distcheck: dist
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
+ *.tar.zst*) \
+ zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
esac
chmod -R a-w $(distdir)
chmod u+w $(distdir)
@@ -734,7 +746,7 @@ distcheck: dist
$(DISTCHECK_CONFIGURE_FLAGS) \
--srcdir=../.. --prefix="$$dc_install_base" \
&& $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
@@ -897,7 +909,7 @@ uninstall-am:
am--refresh check check-am clean clean-cscope clean-generic \
clean-libtool cscope cscopelist-am ctags ctags-am dist \
dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
- dist-tarZ dist-xz dist-zip distcheck distclean \
+ dist-tarZ dist-xz dist-zip dist-zstd distcheck distclean \
distclean-generic distclean-hdr distclean-libtool \
distclean-tags distcleancheck distdir distuninstallcheck dvi \
dvi-am html html-am info info-am install install-am \
@@ -921,10 +933,6 @@ releasedocs:
rm -rf Linux-PAM-$(VERSION)
mkdir -p Linux-PAM-$(VERSION)/doc
make -C doc releasedocs
- tar zfc Linux-PAM-$(VERSION)-docs.tar.gz \
- Linux-PAM-$(VERSION)/doc
- tar jfc Linux-PAM-$(VERSION)-docs.tar.bz2 \
- Linux-PAM-$(VERSION)/doc
tar Jfc Linux-PAM-$(VERSION)-docs.tar.xz \
Linux-PAM-$(VERSION)/doc
rm -rf Linux-PAM-$(VERSION)
diff --git a/NEWS b/NEWS
index e8c0de87..ca436baf 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,45 @@
Linux-PAM NEWS -- history of user-visible changes.
+Release 1.5.2
+* pam_exec: implemented quiet_log option.
+* pam_mkhomedir: added support of HOME_MODE and UMASK from /etc/login.defs.
+* pam_timestamp: changed hmac algorithm to call openssl instead of the bundled
+ sha1 implementation if selected, added option to select
+ the hash algorithm to use with HMAC.
+* Added pkgconfig files for provided libraries.
+* Added --with-systemdunitdir configure option to specify systemd unit
+ directory.
+* Added --with-misc-conv-bufsize configure option to specify the buffer size
+ in libpam_misc's misc_conv() function, raised the default value for this
+ parameter from 512 to 4096.
+* Multiple minor bug fixes, portability fixes, documentation improvements,
+ and translation updates.
+
+Release 1.5.1
+* pam_unix: fixed CVE-2020-27780 - authentication bypass when a user
+ doesn't exist and root password is blank
+* pam_faillock: added nodelay option to not set pam_fail_delay
+* pam_wheel: use pam_modutil_user_in_group to check for the group membership
+ with getgrouplist where it is available
+
+Release 1.5.0
+* Multiple minor bug fixes, portability fixes, and documentation improvements.
+* Extended libpam API with pam_modutil_check_user_in_passwd function.
+* configure: added --disable-unix option to disable build of pam_unix module.
+* pam_faillock: changed /run/faillock/$USER permissions from 0600 to 0660.
+* pam_limits: added support for nonewprivs item.
+* pam_motd: read motd files with target user credentials skipping unreadable ones.
+* pam_pwhistory: added a SELinux helper executable.
+* pam_unix, pam_usertype: implemented avoidance of certain timing attacks.
+* pam_wheel: implemented PAM_RUSER fallback for the case when getlogin fails.
+* Removed deprecated pam_cracklib module, use pam_passwdqc (from passwdqc project)
+ or pam_pwquality (from libpwquality project) instead.
+* Removed deprecated pam_tally and pam_tally2 modules, use pam_faillock instead.
+* pam_env: Reading of the user environment is deprecated and will be removed
+ at some point in the future.
+* libpam: pam_modutil_drop_priv() now correctly sets the target user's
+ supplementary groups, allowing pam_motd to filter messages accordingly
+
Release 1.4.0
* Multiple minor bug fixes and documentation improvements
* Fixed grammar of messages printed via pam_prompt
diff --git a/aclocal.m4 b/aclocal.m4
index 8ab8da24..1df70401 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -296,7 +296,7 @@ AS_VAR_COPY([$1], [pkg_cv_][$1])
AS_VAR_IF([$1], [""], [$5], [$4])dnl
])dnl PKG_CHECK_VAR
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -311,7 +311,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.16'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.16.1], [],
+m4_if([$1], [1.16.3], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -327,14 +327,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.16.1])dnl
+[AM_AUTOMAKE_VERSION([1.16.3])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -386,7 +386,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -417,7 +417,7 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -608,7 +608,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -647,7 +647,9 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
done
if test $am_rc -ne 0; then
AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
- for automatic dependency tracking. Try re-running configure with the
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE="gmake" (or whatever is
+ necessary). You can also try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).])
fi
@@ -674,7 +676,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -871,7 +873,7 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -892,7 +894,7 @@ if test x"${install_sh+set}" != xset; then
fi
AC_SUBST([install_sh])])
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -911,7 +913,7 @@ fi
rmdir .tst 2>/dev/null
AC_SUBST([am__leading_dot])])
-# Copyright (C) 1998-2018 Free Software Foundation, Inc.
+# Copyright (C) 1998-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -931,7 +933,7 @@ fi])
# Check to see how 'make' treats includes. -*- Autoconf -*-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -974,7 +976,7 @@ AC_SUBST([am__quote])])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -995,12 +997,7 @@ AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
@@ -1013,7 +1010,7 @@ fi
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1042,7 +1039,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1089,7 +1086,7 @@ AC_LANG_POP([C])])
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1108,7 +1105,7 @@ AC_DEFUN([AM_RUN_LOG],
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1189,7 +1186,7 @@ AC_CONFIG_COMMANDS_PRE(
rm -f conftest.file
])
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1249,7 +1246,7 @@ AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1277,7 +1274,7 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006-2018 Free Software Foundation, Inc.
+# Copyright (C) 2006-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1296,7 +1293,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004-2018 Free Software Foundation, Inc.
+# Copyright (C) 2004-2020 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1427,14 +1424,15 @@ AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
+m4_include([m4/attribute.m4])
m4_include([m4/gettext.m4])
m4_include([m4/iconv.m4])
m4_include([m4/intlmacosx.m4])
-m4_include([m4/japhar_grep_cflags.m4])
m4_include([m4/jh_path_xml_catalog.m4])
m4_include([m4/ld-O1.m4])
m4_include([m4/ld-as-needed.m4])
m4_include([m4/ld-no-undefined.m4])
+m4_include([m4/ld-z-now.m4])
m4_include([m4/lib-ld.m4])
m4_include([m4/lib-link.m4])
m4_include([m4/lib-prefix.m4])
@@ -1447,3 +1445,5 @@ m4_include([m4/lt~obsolete.m4])
m4_include([m4/nls.m4])
m4_include([m4/po.m4])
m4_include([m4/progtest.m4])
+m4_include([m4/warn_lang_flags.m4])
+m4_include([m4/warnings.m4])
diff --git a/build-aux/compile b/build-aux/compile
index 99e50524..23fcba01 100755
--- a/build-aux/compile
+++ b/build-aux/compile
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
@@ -53,7 +53,7 @@ func_file_conv ()
MINGW*)
file_conv=mingw
;;
- CYGWIN*)
+ CYGWIN* | MSYS*)
file_conv=cygwin
;;
*)
@@ -67,7 +67,7 @@ func_file_conv ()
mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
- cygwin/*)
+ cygwin/* | msys/*)
file=`cygpath -m "$file" || echo "$file"`
;;
wine/*)
diff --git a/build-aux/config.guess b/build-aux/config.guess
index 28bec27b..e81d3ae7 100755
--- a/build-aux/config.guess
+++ b/build-aux/config.guess
@@ -1,8 +1,10 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2018 Free Software Foundation, Inc.
+# Copyright 1992-2021 Free Software Foundation, Inc.
-timestamp='2018-12-07'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2021-06-03'
# 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
@@ -27,11 +29,19 @@ timestamp='2018-12-07'
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
#
# Please send patches to <config-patches@gnu.org>.
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX. However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
+
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
@@ -50,7 +60,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2018 Free Software Foundation, Inc.
+Copyright 1992-2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -84,6 +94,9 @@ if test $# != 0; then
exit 1
fi
+# Just in case it came from the environment.
+GUESS=
+
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
@@ -99,8 +112,10 @@ tmp=
trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
set_cc_for_build() {
+ # prevent multiple calls if $tmp is already set
+ test "$tmp" && return 0
: "${TMPDIR=/tmp}"
- # shellcheck disable=SC2039
+ # shellcheck disable=SC2039,SC3028
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
@@ -110,7 +125,7 @@ set_cc_for_build() {
,,) echo "int x;" > "$dummy.c"
for driver in cc gcc c89 c99 ; do
if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$driver"
+ CC_FOR_BUILD=$driver
break
fi
done
@@ -131,14 +146,12 @@ fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-case "$UNAME_SYSTEM" in
+case $UNAME_SYSTEM in
Linux|GNU|GNU/*)
- # If the system lacks a compiler, then just pick glibc.
- # We could probably try harder.
- LIBC=gnu
+ LIBC=unknown
set_cc_for_build
cat <<-EOF > "$dummy.c"
@@ -147,24 +160,37 @@ Linux|GNU|GNU/*)
LIBC=uclibc
#elif defined(__dietlibc__)
LIBC=dietlibc
- #else
+ #elif defined(__GLIBC__)
LIBC=gnu
+ #else
+ #include <stdarg.h>
+ /* First heuristic to detect musl libc. */
+ #ifdef __DEFINED_va_list
+ LIBC=musl
+ #endif
#endif
EOF
- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
+ cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ eval "$cc_set_libc"
- # If ldd exists, use it to detect musl libc.
- if command -v ldd >/dev/null && \
- ldd --version 2>&1 | grep -q ^musl
- then
- LIBC=musl
+ # Second heuristic to detect musl libc.
+ if [ "$LIBC" = unknown ] &&
+ command -v ldd >/dev/null &&
+ ldd --version 2>&1 | grep -q ^musl; then
+ LIBC=musl
+ fi
+
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ if [ "$LIBC" = unknown ]; then
+ LIBC=gnu
fi
;;
esac
# Note: order is significant - the case branches are not exclusive.
-case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
+case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -176,12 +202,12 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
- sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
- "/sbin/$sysctl" 2>/dev/null || \
- "/usr/sbin/$sysctl" 2>/dev/null || \
+ /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
+ /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
echo unknown)`
- case "$UNAME_MACHINE_ARCH" in
+ case $UNAME_MACHINE_ARCH in
+ aarch64eb) machine=aarch64_be-unknown ;;
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
@@ -190,13 +216,13 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
earmv*)
arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
- machine="${arch}${endian}"-unknown
+ machine=${arch}${endian}-unknown
;;
- *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
+ *) machine=$UNAME_MACHINE_ARCH-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently (or will in the future) and ABI.
- case "$UNAME_MACHINE_ARCH" in
+ case $UNAME_MACHINE_ARCH in
earm*)
os=netbsdelf
;;
@@ -217,7 +243,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
;;
esac
# Determine ABI tags.
- case "$UNAME_MACHINE_ARCH" in
+ case $UNAME_MACHINE_ARCH in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
@@ -228,7 +254,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
- case "$UNAME_VERSION" in
+ case $UNAME_VERSION in
Debian*)
release='-gnu'
;;
@@ -239,45 +265,57 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "$machine-${os}${release}${abi-}"
- exit ;;
+ GUESS=$machine-${os}${release}${abi-}
+ ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
- echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
+ ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
+ ;;
+ *:SecBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
+ GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
+ ;;
*:LibertyBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
- echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
+ ;;
*:MidnightBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
+ ;;
*:ekkoBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
+ ;;
*:SolidBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
+ ;;
+ *:OS108:*:*)
+ GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
+ ;;
macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
+ ;;
*:MirBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
+ ;;
*:Sortix:*:*)
- echo "$UNAME_MACHINE"-unknown-sortix
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-sortix
+ ;;
+ *:Twizzler:*:*)
+ GUESS=$UNAME_MACHINE-unknown-twizzler
+ ;;
*:Redox:*:*)
- echo "$UNAME_MACHINE"-unknown-redox
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-redox
+ ;;
mips:OSF1:*.*)
- echo mips-dec-osf1
- exit ;;
+ GUESS=mips-dec-osf1
+ ;;
alpha:OSF1:*:*)
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ trap '' 0
case $UNAME_RELEASE in
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
@@ -291,7 +329,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
- case "$ALPHA_CPU_TYPE" in
+ case $ALPHA_CPU_TYPE in
"EV4 (21064)")
UNAME_MACHINE=alpha ;;
"EV4.5 (21064)")
@@ -328,75 +366,76 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
- # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
- exitcode=$?
- trap '' 0
- exit $exitcode ;;
+ OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
+ ;;
Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit ;;
+ GUESS=m68k-unknown-sysv4
+ ;;
*:[Aa]miga[Oo][Ss]:*:*)
- echo "$UNAME_MACHINE"-unknown-amigaos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-amigaos
+ ;;
*:[Mm]orph[Oo][Ss]:*:*)
- echo "$UNAME_MACHINE"-unknown-morphos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-morphos
+ ;;
*:OS/390:*:*)
- echo i370-ibm-openedition
- exit ;;
+ GUESS=i370-ibm-openedition
+ ;;
*:z/VM:*:*)
- echo s390-ibm-zvmoe
- exit ;;
+ GUESS=s390-ibm-zvmoe
+ ;;
*:OS400:*:*)
- echo powerpc-ibm-os400
- exit ;;
+ GUESS=powerpc-ibm-os400
+ ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix"$UNAME_RELEASE"
- exit ;;
+ GUESS=arm-acorn-riscix$UNAME_RELEASE
+ ;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
+ GUESS=arm-unknown-riscos
+ ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit ;;
+ GUESS=hppa1.1-hitachi-hiuxmpp
+ ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit ;;
+ case `(/bin/universe) 2>/dev/null` in
+ att) GUESS=pyramid-pyramid-sysv3 ;;
+ *) GUESS=pyramid-pyramid-bsd ;;
+ esac
+ ;;
NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit ;;
+ GUESS=pyramid-pyramid-svr4
+ ;;
DRS?6000:unix:4.0:6*)
- echo sparc-icl-nx6
- exit ;;
+ GUESS=sparc-icl-nx6
+ ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
+ sparc) GUESS=sparc-icl-nx7 ;;
+ esac
+ ;;
s390x:SunOS:*:*)
- echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
+ ;;
sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-hal-solaris2$SUN_REL
+ ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-sun-solaris2$SUN_REL
+ ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux"$UNAME_RELEASE"
- exit ;;
+ GUESS=i386-pc-auroraux$UNAME_RELEASE
+ ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
set_cc_for_build
SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
- if [ "$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') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
@@ -404,41 +443,44 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
SUN_ARCH=x86_64
fi
fi
- echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
+ ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-sun-solaris3$SUN_REL
+ ;;
sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
+ case `/usr/bin/arch -k` in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
+ GUESS=sparc-sun-sunos$SUN_REL
+ ;;
sun3*:SunOS:*:*)
- echo m68k-sun-sunos"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
+ ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
- case "`/bin/arch`" in
+ case `/bin/arch` in
sun3)
- echo m68k-sun-sunos"$UNAME_RELEASE"
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
;;
sun4)
- echo sparc-sun-sunos"$UNAME_RELEASE"
+ GUESS=sparc-sun-sunos$UNAME_RELEASE
;;
esac
- exit ;;
+ ;;
aushp:SunOS:*:*)
- echo sparc-auspex-sunos"$UNAME_RELEASE"
- exit ;;
+ GUESS=sparc-auspex-sunos$UNAME_RELEASE
+ ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
@@ -448,41 +490,41 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-milan-mint$UNAME_RELEASE
+ ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-hades-mint$UNAME_RELEASE
+ ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-unknown-mint$UNAME_RELEASE
+ ;;
m68k:machten:*:*)
- echo m68k-apple-machten"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-apple-machten$UNAME_RELEASE
+ ;;
powerpc:machten:*:*)
- echo powerpc-apple-machten"$UNAME_RELEASE"
- exit ;;
+ GUESS=powerpc-apple-machten$UNAME_RELEASE
+ ;;
RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit ;;
+ GUESS=mips-dec-mach_bsd4.3
+ ;;
RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix"$UNAME_RELEASE"
- exit ;;
+ GUESS=mips-dec-ultrix$UNAME_RELEASE
+ ;;
VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix"$UNAME_RELEASE"
- exit ;;
+ GUESS=vax-dec-ultrix$UNAME_RELEASE
+ ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix"$UNAME_RELEASE"
- exit ;;
+ GUESS=clipper-intergraph-clix$UNAME_RELEASE
+ ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
@@ -510,75 +552,76 @@ EOF
dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos"$UNAME_RELEASE"
- exit ;;
+ GUESS=mips-mips-riscos$UNAME_RELEASE
+ ;;
Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit ;;
+ GUESS=powerpc-motorola-powermax
+ ;;
Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit ;;
+ GUESS=powerpc-harris-powermax
+ ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- echo powerpc-harris-powermax
- exit ;;
+ GUESS=powerpc-harris-powermax
+ ;;
Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit ;;
+ GUESS=powerpc-harris-powerunix
+ ;;
m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit ;;
+ GUESS=m88k-harris-cxux7
+ ;;
m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit ;;
+ GUESS=m88k-motorola-sysv4
+ ;;
m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit ;;
+ GUESS=m88k-motorola-sysv3
+ ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
+ if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
then
- if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
- [ "$TARGET_BINARY_INTERFACE"x = x ]
+ if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
+ test "$TARGET_BINARY_INTERFACE"x = x
then
- echo m88k-dg-dgux"$UNAME_RELEASE"
+ GUESS=m88k-dg-dgux$UNAME_RELEASE
else
- echo m88k-dg-dguxbcs"$UNAME_RELEASE"
+ GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
fi
else
- echo i586-dg-dgux"$UNAME_RELEASE"
+ GUESS=i586-dg-dgux$UNAME_RELEASE
fi
- exit ;;
+ ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
+ GUESS=m88k-dolphin-sysv3
+ ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit ;;
+ GUESS=m88k-motorola-sysv3
+ ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit ;;
+ GUESS=m88k-tektronix-sysv3
+ ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit ;;
+ GUESS=m68k-tektronix-bsd
+ ;;
*:IRIX*:*:*)
- echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
- exit ;;
+ IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
+ GUESS=mips-sgi-irix$IRIX_REL
+ ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
- echo i386-ibm-aix
- exit ;;
+ GUESS=i386-ibm-aix
+ ;;
ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
+ if test -x /usr/bin/oslevel ; then
IBM_REV=`/usr/bin/oslevel`
else
- IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
fi
- echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
- exit ;;
+ GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
+ ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
set_cc_for_build
@@ -595,16 +638,16 @@ EOF
EOF
if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
then
- echo "$SYSTEM_NAME"
+ GUESS=$SYSTEM_NAME
else
- echo rs6000-ibm-aix3.2.5
+ GUESS=rs6000-ibm-aix3.2.5
fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
+ GUESS=rs6000-ibm-aix3.2.4
else
- echo rs6000-ibm-aix3.2
+ GUESS=rs6000-ibm-aix3.2
fi
- exit ;;
+ ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
@@ -612,56 +655,56 @@ EOF
else
IBM_ARCH=powerpc
fi
- if [ -x /usr/bin/lslpp ] ; then
- IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+ if test -x /usr/bin/lslpp ; then
+ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
- IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
fi
- echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
- exit ;;
+ GUESS=$IBM_ARCH-ibm-aix$IBM_REV
+ ;;
*:AIX:*:*)
- echo rs6000-ibm-aix
- exit ;;
+ GUESS=rs6000-ibm-aix
+ ;;
ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
- echo romp-ibm-bsd4.4
- exit ;;
+ GUESS=romp-ibm-bsd4.4
+ ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
- exit ;; # report: romp-ibm BSD 4.3
+ GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to
+ ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
- echo rs6000-bull-bosx
- exit ;;
+ GUESS=rs6000-bull-bosx
+ ;;
DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit ;;
+ GUESS=m68k-bull-sysv3
+ ;;
9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit ;;
+ GUESS=m68k-hp-bsd
+ ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit ;;
+ GUESS=m68k-hp-bsd4.4
+ ;;
9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
- case "$UNAME_MACHINE" in
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+ case $UNAME_MACHINE in
9000/31?) HP_ARCH=m68000 ;;
9000/[34]??) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
+ if test -x /usr/bin/getconf; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "$sc_cpu_version" in
+ case $sc_cpu_version in
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
- case "$sc_kernel_bits" in
+ case $sc_kernel_bits in
32) HP_ARCH=hppa2.0n ;;
64) HP_ARCH=hppa2.0w ;;
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
- if [ "$HP_ARCH" = "" ]; then
+ if test "$HP_ARCH" = ""; then
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
@@ -700,7 +743,7 @@ EOF
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
- if [ "$HP_ARCH" = hppa2.0w ]
+ if test "$HP_ARCH" = hppa2.0w
then
set_cc_for_build
@@ -721,12 +764,12 @@ EOF
HP_ARCH=hppa64
fi
fi
- echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
- exit ;;
+ GUESS=$HP_ARCH-hp-hpux$HPUX_REV
+ ;;
ia64:HP-UX:*:*)
- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux"$HPUX_REV"
- exit ;;
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+ GUESS=ia64-hp-hpux$HPUX_REV
+ ;;
3050*:HI-UX:*:*)
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
@@ -756,36 +799,36 @@ EOF
EOF
$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo unknown-hitachi-hiuxwe2
- exit ;;
+ GUESS=unknown-hitachi-hiuxwe2
+ ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
- echo hppa1.1-hp-bsd
- exit ;;
+ GUESS=hppa1.1-hp-bsd
+ ;;
9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit ;;
+ GUESS=hppa1.0-hp-bsd
+ ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit ;;
+ GUESS=hppa1.0-hp-mpeix
+ ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
- echo hppa1.1-hp-osf
- exit ;;
+ GUESS=hppa1.1-hp-osf
+ ;;
hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit ;;
+ GUESS=hppa1.0-hp-osf
+ ;;
i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo "$UNAME_MACHINE"-unknown-osf1mk
+ if test -x /usr/sbin/sysversion ; then
+ GUESS=$UNAME_MACHINE-unknown-osf1mk
else
- echo "$UNAME_MACHINE"-unknown-osf1
+ GUESS=$UNAME_MACHINE-unknown-osf1
fi
- exit ;;
+ ;;
parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit ;;
+ GUESS=hppa1.1-hp-lites
+ ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit ;;
+ GUESS=c1-convex-bsd
+ ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
@@ -793,17 +836,18 @@ EOF
fi
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit ;;
+ GUESS=c34-convex-bsd
+ ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit ;;
+ GUESS=c38-convex-bsd
+ ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit ;;
+ GUESS=c4-convex-bsd
+ ;;
CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=ymp-cray-unicos$CRAY_REL
+ ;;
CRAY*[A-Z]90:*:*:*)
echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
@@ -811,114 +855,126 @@ EOF
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
- echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=t90-cray-unicos$CRAY_REL
+ ;;
CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=alphaev5-cray-unicosmk$CRAY_REL
+ ;;
CRAY*SV1:*:*:*)
- echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=sv1-cray-unicos$CRAY_REL
+ ;;
*:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=craynv-cray-unicosmp$CRAY_REL
+ ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
+ GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+ ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
+ GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+ ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
+ ;;
sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi"$UNAME_RELEASE"
- exit ;;
+ GUESS=sparc-unknown-bsdi$UNAME_RELEASE
+ ;;
*:BSD/OS:*:*)
- echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
+ ;;
arm:FreeBSD:*:*)
UNAME_PROCESSOR=`uname -p`
set_cc_for_build
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
else
- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
fi
- exit ;;
+ ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
- case "$UNAME_PROCESSOR" in
+ case $UNAME_PROCESSOR in
amd64)
UNAME_PROCESSOR=x86_64 ;;
i386)
UNAME_PROCESSOR=i586 ;;
esac
- echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
- exit ;;
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
+ ;;
i*:CYGWIN*:*)
- echo "$UNAME_MACHINE"-pc-cygwin
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-cygwin
+ ;;
*:MINGW64*:*)
- echo "$UNAME_MACHINE"-pc-mingw64
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-mingw64
+ ;;
*:MINGW*:*)
- echo "$UNAME_MACHINE"-pc-mingw32
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-mingw32
+ ;;
*:MSYS*:*)
- echo "$UNAME_MACHINE"-pc-msys
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-msys
+ ;;
i*:PW*:*)
- echo "$UNAME_MACHINE"-pc-pw32
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-pw32
+ ;;
*:Interix*:*)
- case "$UNAME_MACHINE" in
+ case $UNAME_MACHINE in
x86)
- echo i586-pc-interix"$UNAME_RELEASE"
- exit ;;
+ GUESS=i586-pc-interix$UNAME_RELEASE
+ ;;
authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix"$UNAME_RELEASE"
- exit ;;
+ GUESS=x86_64-unknown-interix$UNAME_RELEASE
+ ;;
IA64)
- echo ia64-unknown-interix"$UNAME_RELEASE"
- exit ;;
+ GUESS=ia64-unknown-interix$UNAME_RELEASE
+ ;;
esac ;;
i*:UWIN*:*)
- echo "$UNAME_MACHINE"-pc-uwin
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-uwin
+ ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-pc-cygwin
- exit ;;
+ GUESS=x86_64-pc-cygwin
+ ;;
prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=powerpcle-unknown-solaris2$SUN_REL
+ ;;
*:GNU:*:*)
# the GNU system
- echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
- exit ;;
+ GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
+ GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
+ ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
- exit ;;
+ GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
+ ;;
*:Minix:*:*)
- echo "$UNAME_MACHINE"-unknown-minix
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-minix
+ ;;
aarch64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
EV5) UNAME_MACHINE=alphaev5 ;;
EV56) UNAME_MACHINE=alphaev56 ;;
PCA56) UNAME_MACHINE=alphapca56 ;;
@@ -929,183 +985,225 @@ EOF
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- arc:Linux:*:* | arceb:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
arm*:Linux:*:*)
set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
else
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
fi
fi
- exit ;;
+ ;;
avr32*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
cris:Linux:*:*)
- echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+ ;;
crisv32:Linux:*:*)
- echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+ ;;
e2k:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
frv:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
hexagon:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
i*86:Linux:*:*)
- echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-linux-$LIBC
+ ;;
ia64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
k1om:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
m32r*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
m68*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
mips:Linux:*:* | mips64:Linux:*:*)
set_cc_for_build
+ IS_GLIBC=0
+ test x"${LIBC}" = xgnu && IS_GLIBC=1
sed 's/^ //' << EOF > "$dummy.c"
#undef CPU
- #undef ${UNAME_MACHINE}
- #undef ${UNAME_MACHINE}el
+ #undef mips
+ #undef mipsel
+ #undef mips64
+ #undef mips64el
+ #if ${IS_GLIBC} && defined(_ABI64)
+ LIBCABI=gnuabi64
+ #else
+ #if ${IS_GLIBC} && defined(_ABIN32)
+ LIBCABI=gnuabin32
+ #else
+ LIBCABI=${LIBC}
+ #endif
+ #endif
+
+ #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+ CPU=mipsisa64r6
+ #else
+ #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+ CPU=mipsisa32r6
+ #else
+ #if defined(__mips64)
+ CPU=mips64
+ #else
+ CPU=mips
+ #endif
+ #endif
+ #endif
+
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=${UNAME_MACHINE}el
+ MIPS_ENDIAN=el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=${UNAME_MACHINE}
+ MIPS_ENDIAN=
#else
- CPU=
+ MIPS_ENDIAN=
#endif
#endif
EOF
- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
- test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
+ cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
+ eval "$cc_set_vars"
+ test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
;;
mips64el:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
openrisc*:Linux:*:*)
- echo or1k-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=or1k-unknown-linux-$LIBC
+ ;;
or32:Linux:*:* | or1k*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
padre:Linux:*:*)
- echo sparc-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=sparc-unknown-linux-$LIBC
+ ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=hppa64-unknown-linux-$LIBC
+ ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
- PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
- *) echo hppa-unknown-linux-"$LIBC" ;;
+ PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
+ PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
+ *) GUESS=hppa-unknown-linux-$LIBC ;;
esac
- exit ;;
+ ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=powerpc64-unknown-linux-$LIBC
+ ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=powerpc-unknown-linux-$LIBC
+ ;;
ppc64le:Linux:*:*)
- echo powerpc64le-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=powerpc64le-unknown-linux-$LIBC
+ ;;
ppcle:Linux:*:*)
- echo powerpcle-unknown-linux-"$LIBC"
- exit ;;
- riscv32:Linux:*:* | riscv64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=powerpcle-unknown-linux-$LIBC
+ ;;
+ riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
+ ;;
sh64*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
sh*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
tile*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
vax:Linux:*:*)
- echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-dec-linux-$LIBC
+ ;;
x86_64:Linux:*:*)
- echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
- exit ;;
+ set_cc_for_build
+ LIBCABI=$LIBC
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_X32 >/dev/null
+ then
+ LIBCABI=${LIBC}x32
+ fi
+ fi
+ GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
+ ;;
xtensa*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
- echo i386-sequent-sysv4
- exit ;;
+ GUESS=i386-sequent-sysv4
+ ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
- echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
+ ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
- echo "$UNAME_MACHINE"-pc-os2-emx
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-os2-emx
+ ;;
i*86:XTS-300:*:STOP)
- echo "$UNAME_MACHINE"-unknown-stop
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-stop
+ ;;
i*86:atheos:*:*)
- echo "$UNAME_MACHINE"-unknown-atheos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-atheos
+ ;;
i*86:syllable:*:*)
- echo "$UNAME_MACHINE"-pc-syllable
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-syllable
+ ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
+ GUESS=i386-unknown-lynxos$UNAME_RELEASE
+ ;;
i*86:*DOS:*:*)
- echo "$UNAME_MACHINE"-pc-msdosdjgpp
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-msdosdjgpp
+ ;;
i*86:*:4.*:*)
UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
+ GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
else
- echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
+ GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
fi
- exit ;;
+ ;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
@@ -1113,12 +1211,12 @@ EOF
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
- echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
+ GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
@@ -1128,11 +1226,11 @@ EOF
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
- echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
+ GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
else
- echo "$UNAME_MACHINE"-pc-sysv32
+ GUESS=$UNAME_MACHINE-pc-sysv32
fi
- exit ;;
+ ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
@@ -1140,31 +1238,31 @@ EOF
# Note: whatever this is, it MUST be the same as what config.sub
# prints for the "djgpp" host, or else GDB configure will decide that
# this is a cross-build.
- echo i586-pc-msdosdjgpp
- exit ;;
+ GUESS=i586-pc-msdosdjgpp
+ ;;
Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit ;;
+ GUESS=i386-pc-mach3
+ ;;
paragon:*:*:*)
- echo i860-intel-osf1
- exit ;;
+ GUESS=i860-intel-osf1
+ ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
+ GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
+ GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4
fi
- exit ;;
+ ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
- echo m68010-convergent-sysv
- exit ;;
+ GUESS=m68010-convergent-sysv
+ ;;
mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit ;;
+ GUESS=m68k-convergent-sysv
+ ;;
M680?0:D-NIX:5.3:*)
- echo m68k-diab-dnix
- exit ;;
+ GUESS=m68k-diab-dnix
+ ;;
M68*:*:R3V[5678]*:*)
test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
@@ -1189,253 +1287,401 @@ EOF
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
&& { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-unknown-lynxos$UNAME_RELEASE
+ ;;
mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit ;;
+ GUESS=m68k-atari-sysv4
+ ;;
TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
+ GUESS=sparc-unknown-lynxos$UNAME_RELEASE
+ ;;
rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
+ GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
+ ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
+ GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
+ ;;
SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv"$UNAME_RELEASE"
- exit ;;
+ GUESS=mips-dde-sysv$UNAME_RELEASE
+ ;;
RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
+ GUESS=mips-sni-sysv4
+ ;;
RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
+ GUESS=mips-sni-sysv4
+ ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo "$UNAME_MACHINE"-sni-sysv4
+ GUESS=$UNAME_MACHINE-sni-sysv4
else
- echo ns32k-sni-sysv
+ GUESS=ns32k-sni-sysv
fi
- exit ;;
+ ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
+ GUESS=i586-unisys-sysv4
+ ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit ;;
+ GUESS=hppa1.1-stratus-sysv4
+ ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit ;;
+ GUESS=i860-stratus-sysv4
+ ;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
- echo "$UNAME_MACHINE"-stratus-vos
- exit ;;
+ GUESS=$UNAME_MACHINE-stratus-vos
+ ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
- echo hppa1.1-stratus-vos
- exit ;;
+ GUESS=hppa1.1-stratus-vos
+ ;;
mc68*:A/UX:*:*)
- echo m68k-apple-aux"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-apple-aux$UNAME_RELEASE
+ ;;
news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit ;;
+ GUESS=mips-sony-newsos6
+ ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv"$UNAME_RELEASE"
+ if test -d /usr/nec; then
+ GUESS=mips-nec-sysv$UNAME_RELEASE
else
- echo mips-unknown-sysv"$UNAME_RELEASE"
+ GUESS=mips-unknown-sysv$UNAME_RELEASE
fi
- exit ;;
+ ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit ;;
+ GUESS=powerpc-be-beos
+ ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit ;;
+ GUESS=powerpc-apple-beos
+ ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit ;;
+ GUESS=i586-pc-beos
+ ;;
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
- echo i586-pc-haiku
- exit ;;
+ GUESS=i586-pc-haiku
+ ;;
x86_64:Haiku:*:*)
- echo x86_64-unknown-haiku
- exit ;;
+ GUESS=x86_64-unknown-haiku
+ ;;
SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx4-nec-superux$UNAME_RELEASE
+ ;;
SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx5-nec-superux$UNAME_RELEASE
+ ;;
SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx6-nec-superux$UNAME_RELEASE
+ ;;
SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx7-nec-superux$UNAME_RELEASE
+ ;;
SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx8-nec-superux$UNAME_RELEASE
+ ;;
SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx8r-nec-superux$UNAME_RELEASE
+ ;;
SX-ACE:SUPER-UX:*:*)
- echo sxace-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sxace-nec-superux$UNAME_RELEASE
+ ;;
Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody"$UNAME_RELEASE"
- exit ;;
+ GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
+ ;;
*:Rhapsody:*:*)
- echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
+ ;;
+ arm64:Darwin:*:*)
+ GUESS=aarch64-apple-darwin$UNAME_RELEASE
+ ;;
*:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- set_cc_for_build
- if test "$UNAME_PROCESSOR" = unknown ; then
- UNAME_PROCESSOR=powerpc
+ UNAME_PROCESSOR=`uname -p`
+ case $UNAME_PROCESSOR in
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ if command -v xcode-select > /dev/null 2> /dev/null && \
+ ! xcode-select --print-path > /dev/null 2> /dev/null ; then
+ # Avoid executing cc if there is no toolchain installed as
+ # cc will be a stub that puts up a graphical alert
+ # prompting the user to install developer tools.
+ CC_FOR_BUILD=no_compiler_found
+ else
+ set_cc_for_build
fi
- if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- esac
- fi
- # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
- if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_PPC >/dev/null
- then
- UNAME_PROCESSOR=powerpc
- fi
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_PPC >/dev/null
+ then
+ UNAME_PROCESSOR=powerpc
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
- # Avoid executing cc on OS X 10.9, as it ships with a stub
- # that puts up a graphical alert prompting to install
- # developer tools. Any system running Mac OS X 10.7 or
- # later (Darwin 11 and later) is required to have a 64-bit
- # processor. This is not true of the ARM version of Darwin
- # that Apple uses in portable devices.
- UNAME_PROCESSOR=x86_64
+ # uname -m returns i386 or x86_64
+ UNAME_PROCESSOR=$UNAME_MACHINE
fi
- echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
+ ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = x86; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
- echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
+ ;;
*:QNX:*:4*)
- echo i386-pc-qnx
- exit ;;
+ GUESS=i386-pc-qnx
+ ;;
NEO-*:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk"$UNAME_RELEASE"
- exit ;;
+ GUESS=neo-tandem-nsk$UNAME_RELEASE
+ ;;
NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk"$UNAME_RELEASE"
- exit ;;
+ GUESS=nse-tandem-nsk$UNAME_RELEASE
+ ;;
NSR-*:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk"$UNAME_RELEASE"
- exit ;;
+ GUESS=nsr-tandem-nsk$UNAME_RELEASE
+ ;;
NSV-*:NONSTOP_KERNEL:*:*)
- echo nsv-tandem-nsk"$UNAME_RELEASE"
- exit ;;
+ GUESS=nsv-tandem-nsk$UNAME_RELEASE
+ ;;
NSX-*:NONSTOP_KERNEL:*:*)
- echo nsx-tandem-nsk"$UNAME_RELEASE"
- exit ;;
+ GUESS=nsx-tandem-nsk$UNAME_RELEASE
+ ;;
*:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit ;;
+ GUESS=mips-compaq-nonstopux
+ ;;
BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit ;;
+ GUESS=bs2000-siemens-sysv
+ ;;
DS/*:UNIX_System_V:*:*)
- echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
+ ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
- # shellcheck disable=SC2154
- if test "$cputype" = 386; then
+ if test "${cputype-}" = 386; then
UNAME_MACHINE=i386
- else
- UNAME_MACHINE="$cputype"
+ elif test "x${cputype-}" != x; then
+ UNAME_MACHINE=$cputype
fi
- echo "$UNAME_MACHINE"-unknown-plan9
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-plan9
+ ;;
*:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit ;;
+ GUESS=pdp10-unknown-tops10
+ ;;
*:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit ;;
+ GUESS=pdp10-unknown-tenex
+ ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit ;;
+ GUESS=pdp10-dec-tops20
+ ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit ;;
+ GUESS=pdp10-xkl-tops20
+ ;;
*:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit ;;
+ GUESS=pdp10-unknown-tops20
+ ;;
*:ITS:*:*)
- echo pdp10-unknown-its
- exit ;;
+ GUESS=pdp10-unknown-its
+ ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux"$UNAME_RELEASE"
- exit ;;
+ GUESS=mips-sei-seiux$UNAME_RELEASE
+ ;;
*:DragonFly:*:*)
- echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
- exit ;;
+ DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
+ ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "$UNAME_MACHINE" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
- V*) echo vax-dec-vms ; exit ;;
+ case $UNAME_MACHINE in
+ A*) GUESS=alpha-dec-vms ;;
+ I*) GUESS=ia64-dec-vms ;;
+ V*) GUESS=vax-dec-vms ;;
esac ;;
*:XENIX:*:SysV)
- echo i386-pc-xenix
- exit ;;
+ GUESS=i386-pc-xenix
+ ;;
i*86:skyos:*:*)
- echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
- exit ;;
+ SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
+ GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
+ ;;
i*86:rdos:*:*)
- echo "$UNAME_MACHINE"-pc-rdos
- exit ;;
- i*86:AROS:*:*)
- echo "$UNAME_MACHINE"-pc-aros
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-rdos
+ ;;
+ *:AROS:*:*)
+ GUESS=$UNAME_MACHINE-unknown-aros
+ ;;
x86_64:VMkernel:*:*)
- echo "$UNAME_MACHINE"-unknown-esx
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-esx
+ ;;
amd64:Isilon\ OneFS:*:*)
- echo x86_64-unknown-onefs
- exit ;;
+ GUESS=x86_64-unknown-onefs
+ ;;
*:Unleashed:*:*)
- echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
+ ;;
esac
+# Do we have a guess based on uname results?
+if test "x$GUESS" != x; then
+ echo "$GUESS"
+ exit
+fi
+
+# No uname command or uname output not recognized.
+set_cc_for_build
+cat > "$dummy.c" <<EOF
+#ifdef _SEQUENT_
+#include <sys/types.h>
+#include <sys/utsname.h>
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#include <signal.h>
+#if defined(_SIZE_T_) || defined(SIGLOST)
+#include <sys/utsname.h>
+#endif
+#endif
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+#endif
+
+#if defined (vax)
+#if !defined (ultrix)
+#include <sys/param.h>
+#if defined (BSD)
+#if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+#else
+#if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#else
+ printf ("vax-dec-bsd\n"); exit (0);
+#endif
+#endif
+#else
+ printf ("vax-dec-bsd\n"); exit (0);
+#endif
+#else
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname un;
+ uname (&un);
+ printf ("vax-dec-ultrix%s\n", un.release); exit (0);
+#else
+ printf ("vax-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname *un;
+ uname (&un);
+ printf ("mips-dec-ultrix%s\n", un.release); exit (0);
+#else
+ printf ("mips-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
+ { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
+
echo "$0: unable to guess system type" >&2
-case "$UNAME_MACHINE:$UNAME_SYSTEM" in
+case $UNAME_MACHINE:$UNAME_SYSTEM in
mips:Linux | mips64:Linux)
# If we got here on MIPS GNU/Linux, output extra information.
cat >&2 <<EOF
@@ -1452,9 +1698,17 @@ This script (version $timestamp), has failed to recognize the
operating system you are using. If your script is old, overwrite *all*
copies of config.guess and config.sub with the latest versions from:
- https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
and
- https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+EOF
+
+our_year=`echo $timestamp | sed 's,-.*,,'`
+thisyear=`date +%Y`
+# shellcheck disable=SC2003
+script_age=`expr "$thisyear" - "$our_year"`
+if test "$script_age" -lt 3 ; then
+ cat >&2 <<EOF
If $0 has already been updated, send the following data and any
information you think might be pertinent to config-patches@gnu.org to
@@ -1482,6 +1736,7 @@ UNAME_RELEASE = "$UNAME_RELEASE"
UNAME_SYSTEM = "$UNAME_SYSTEM"
UNAME_VERSION = "$UNAME_VERSION"
EOF
+fi
exit 1
diff --git a/build-aux/config.sub b/build-aux/config.sub
index 9542f985..6a758a60 100755
--- a/build-aux/config.sub
+++ b/build-aux/config.sub
@@ -1,8 +1,8 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2018 Free Software Foundation, Inc.
+# Copyright 1992-2021 Free Software Foundation, Inc.
-timestamp='2018-12-16'
+timestamp='2021-06-03'
# 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
@@ -33,7 +33,7 @@ timestamp='2018-12-16'
# Otherwise, we print the canonical config type on stdout and succeed.
# You can get the latest version of this script from:
-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
@@ -50,7 +50,7 @@ timestamp='2018-12-16'
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
-me=`echo "$0" | sed -e 's,.*/,,'`
+me=$(echo "$0" | sed -e 's,.*/,,')
usage="\
Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
@@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2018 Free Software Foundation, Inc.
+Copyright 1992-2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -111,6 +111,7 @@ case $# in
esac
# Split fields of configuration type
+# shellcheck disable=SC2162
IFS="-" read field1 field2 field3 field4 <<EOF
$1
EOF
@@ -123,28 +124,27 @@ case $1 in
;;
*-*-*-*)
basic_machine=$field1-$field2
- os=$field3-$field4
+ basic_os=$field3-$field4
;;
*-*-*)
# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
# parts
maybe_os=$field2-$field3
case $maybe_os in
- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
- | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
+ nto-qnx* | linux-* | uclinux-uclibc* \
| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
| storm-chaos* | os2-emx* | rtmk-nova*)
basic_machine=$field1
- os=$maybe_os
+ basic_os=$maybe_os
;;
android-linux)
basic_machine=$field1-unknown
- os=linux-android
+ basic_os=linux-android
;;
*)
basic_machine=$field1-$field2
- os=$field3
+ basic_os=$field3
;;
esac
;;
@@ -153,7 +153,7 @@ case $1 in
case $field1-$field2 in
decstation-3100)
basic_machine=mips-dec
- os=
+ basic_os=
;;
*-*)
# Second component is usually, but not always the OS
@@ -161,7 +161,7 @@ case $1 in
# Prevent following clause from handling this valid os
sun*os*)
basic_machine=$field1
- os=$field2
+ basic_os=$field2
;;
# Manufacturers
dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
@@ -174,11 +174,11 @@ case $1 in
| microblaze* | sim | cisco \
| oki | wec | wrs | winbond)
basic_machine=$field1-$field2
- os=
+ basic_os=
;;
*)
basic_machine=$field1
- os=$field2
+ basic_os=$field2
;;
esac
;;
@@ -190,450 +190,451 @@ case $1 in
case $field1 in
386bsd)
basic_machine=i386-pc
- os=bsd
+ basic_os=bsd
;;
a29khif)
basic_machine=a29k-amd
- os=udi
+ basic_os=udi
;;
adobe68k)
basic_machine=m68010-adobe
- os=scout
+ basic_os=scout
;;
alliant)
basic_machine=fx80-alliant
- os=
+ basic_os=
;;
altos | altos3068)
basic_machine=m68k-altos
- os=
+ basic_os=
;;
am29k)
basic_machine=a29k-none
- os=bsd
+ basic_os=bsd
;;
amdahl)
basic_machine=580-amdahl
- os=sysv
+ basic_os=sysv
;;
amiga)
basic_machine=m68k-unknown
- os=
+ basic_os=
;;
amigaos | amigados)
basic_machine=m68k-unknown
- os=amigaos
+ basic_os=amigaos
;;
amigaunix | amix)
basic_machine=m68k-unknown
- os=sysv4
+ basic_os=sysv4
;;
apollo68)
basic_machine=m68k-apollo
- os=sysv
+ basic_os=sysv
;;
apollo68bsd)
basic_machine=m68k-apollo
- os=bsd
+ basic_os=bsd
;;
aros)
basic_machine=i386-pc
- os=aros
+ basic_os=aros
;;
aux)
basic_machine=m68k-apple
- os=aux
+ basic_os=aux
;;
balance)
basic_machine=ns32k-sequent
- os=dynix
+ basic_os=dynix
;;
blackfin)
basic_machine=bfin-unknown
- os=linux
+ basic_os=linux
;;
cegcc)
basic_machine=arm-unknown
- os=cegcc
+ basic_os=cegcc
;;
convex-c1)
basic_machine=c1-convex
- os=bsd
+ basic_os=bsd
;;
convex-c2)
basic_machine=c2-convex
- os=bsd
+ basic_os=bsd
;;
convex-c32)
basic_machine=c32-convex
- os=bsd
+ basic_os=bsd
;;
convex-c34)
basic_machine=c34-convex
- os=bsd
+ basic_os=bsd
;;
convex-c38)
basic_machine=c38-convex
- os=bsd
+ basic_os=bsd
;;
cray)
basic_machine=j90-cray
- os=unicos
+ basic_os=unicos
;;
crds | unos)
basic_machine=m68k-crds
- os=
+ basic_os=
;;
da30)
basic_machine=m68k-da30
- os=
+ basic_os=
;;
decstation | pmax | pmin | dec3100 | decstatn)
basic_machine=mips-dec
- os=
+ basic_os=
;;
delta88)
basic_machine=m88k-motorola
- os=sysv3
+ basic_os=sysv3
;;
dicos)
basic_machine=i686-pc
- os=dicos
+ basic_os=dicos
;;
djgpp)
basic_machine=i586-pc
- os=msdosdjgpp
+ basic_os=msdosdjgpp
;;
ebmon29k)
basic_machine=a29k-amd
- os=ebmon
+ basic_os=ebmon
;;
es1800 | OSE68k | ose68k | ose | OSE)
basic_machine=m68k-ericsson
- os=ose
+ basic_os=ose
;;
gmicro)
basic_machine=tron-gmicro
- os=sysv
+ basic_os=sysv
;;
go32)
basic_machine=i386-pc
- os=go32
+ basic_os=go32
;;
h8300hms)
basic_machine=h8300-hitachi
- os=hms
+ basic_os=hms
;;
h8300xray)
basic_machine=h8300-hitachi
- os=xray
+ basic_os=xray
;;
h8500hms)
basic_machine=h8500-hitachi
- os=hms
+ basic_os=hms
;;
harris)
basic_machine=m88k-harris
- os=sysv3
+ basic_os=sysv3
;;
- hp300)
+ hp300 | hp300hpux)
basic_machine=m68k-hp
+ basic_os=hpux
;;
hp300bsd)
basic_machine=m68k-hp
- os=bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=hpux
+ basic_os=bsd
;;
hppaosf)
basic_machine=hppa1.1-hp
- os=osf
+ basic_os=osf
;;
hppro)
basic_machine=hppa1.1-hp
- os=proelf
+ basic_os=proelf
;;
i386mach)
basic_machine=i386-mach
- os=mach
- ;;
- vsta)
- basic_machine=i386-pc
- os=vsta
+ basic_os=mach
;;
isi68 | isi)
basic_machine=m68k-isi
- os=sysv
+ basic_os=sysv
;;
m68knommu)
basic_machine=m68k-unknown
- os=linux
+ basic_os=linux
;;
magnum | m3230)
basic_machine=mips-mips
- os=sysv
+ basic_os=sysv
;;
merlin)
basic_machine=ns32k-utek
- os=sysv
+ basic_os=sysv
;;
mingw64)
basic_machine=x86_64-pc
- os=mingw64
+ basic_os=mingw64
;;
mingw32)
basic_machine=i686-pc
- os=mingw32
+ basic_os=mingw32
;;
mingw32ce)
basic_machine=arm-unknown
- os=mingw32ce
+ basic_os=mingw32ce
;;
monitor)
basic_machine=m68k-rom68k
- os=coff
+ basic_os=coff
;;
morphos)
basic_machine=powerpc-unknown
- os=morphos
+ basic_os=morphos
;;
moxiebox)
basic_machine=moxie-unknown
- os=moxiebox
+ basic_os=moxiebox
;;
msdos)
basic_machine=i386-pc
- os=msdos
+ basic_os=msdos
;;
msys)
basic_machine=i686-pc
- os=msys
+ basic_os=msys
;;
mvs)
basic_machine=i370-ibm
- os=mvs
+ basic_os=mvs
;;
nacl)
basic_machine=le32-unknown
- os=nacl
+ basic_os=nacl
;;
ncr3000)
basic_machine=i486-ncr
- os=sysv4
+ basic_os=sysv4
;;
netbsd386)
basic_machine=i386-pc
- os=netbsd
+ basic_os=netbsd
;;
netwinder)
basic_machine=armv4l-rebel
- os=linux
+ basic_os=linux
;;
news | news700 | news800 | news900)
basic_machine=m68k-sony
- os=newsos
+ basic_os=newsos
;;
news1000)
basic_machine=m68030-sony
- os=newsos
+ basic_os=newsos
;;
necv70)
basic_machine=v70-nec
- os=sysv
+ basic_os=sysv
;;
nh3000)
basic_machine=m68k-harris
- os=cxux
+ basic_os=cxux
;;
nh[45]000)
basic_machine=m88k-harris
- os=cxux
+ basic_os=cxux
;;
nindy960)
basic_machine=i960-intel
- os=nindy
+ basic_os=nindy
;;
mon960)
basic_machine=i960-intel
- os=mon960
+ basic_os=mon960
;;
nonstopux)
basic_machine=mips-compaq
- os=nonstopux
+ basic_os=nonstopux
;;
os400)
basic_machine=powerpc-ibm
- os=os400
+ basic_os=os400
;;
OSE68000 | ose68000)
basic_machine=m68000-ericsson
- os=ose
+ basic_os=ose
;;
os68k)
basic_machine=m68k-none
- os=os68k
+ basic_os=os68k
;;
paragon)
basic_machine=i860-intel
- os=osf
+ basic_os=osf
;;
parisc)
basic_machine=hppa-unknown
- os=linux
+ basic_os=linux
+ ;;
+ psp)
+ basic_machine=mipsallegrexel-sony
+ basic_os=psp
;;
pw32)
basic_machine=i586-unknown
- os=pw32
+ basic_os=pw32
;;
rdos | rdos64)
basic_machine=x86_64-pc
- os=rdos
+ basic_os=rdos
;;
rdos32)
basic_machine=i386-pc
- os=rdos
+ basic_os=rdos
;;
rom68k)
basic_machine=m68k-rom68k
- os=coff
+ basic_os=coff
;;
sa29200)
basic_machine=a29k-amd
- os=udi
+ basic_os=udi
;;
sei)
basic_machine=mips-sei
- os=seiux
+ basic_os=seiux
;;
sequent)
basic_machine=i386-sequent
- os=
+ basic_os=
;;
sps7)
basic_machine=m68k-bull
- os=sysv2
+ basic_os=sysv2
;;
st2000)
basic_machine=m68k-tandem
- os=
+ basic_os=
;;
stratus)
basic_machine=i860-stratus
- os=sysv4
+ basic_os=sysv4
;;
sun2)
basic_machine=m68000-sun
- os=
+ basic_os=
;;
sun2os3)
basic_machine=m68000-sun
- os=sunos3
+ basic_os=sunos3
;;
sun2os4)
basic_machine=m68000-sun
- os=sunos4
+ basic_os=sunos4
;;
sun3)
basic_machine=m68k-sun
- os=
+ basic_os=
;;
sun3os3)
basic_machine=m68k-sun
- os=sunos3
+ basic_os=sunos3
;;
sun3os4)
basic_machine=m68k-sun
- os=sunos4
+ basic_os=sunos4
;;
sun4)
basic_machine=sparc-sun
- os=
+ basic_os=
;;
sun4os3)
basic_machine=sparc-sun
- os=sunos3
+ basic_os=sunos3
;;
sun4os4)
basic_machine=sparc-sun
- os=sunos4
+ basic_os=sunos4
;;
sun4sol2)
basic_machine=sparc-sun
- os=solaris2
+ basic_os=solaris2
;;
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
- os=
+ basic_os=
;;
sv1)
basic_machine=sv1-cray
- os=unicos
+ basic_os=unicos
;;
symmetry)
basic_machine=i386-sequent
- os=dynix
+ basic_os=dynix
;;
t3e)
basic_machine=alphaev5-cray
- os=unicos
+ basic_os=unicos
;;
t90)
basic_machine=t90-cray
- os=unicos
+ basic_os=unicos
;;
toad1)
basic_machine=pdp10-xkl
- os=tops20
+ basic_os=tops20
;;
tpf)
basic_machine=s390x-ibm
- os=tpf
+ basic_os=tpf
;;
udi29k)
basic_machine=a29k-amd
- os=udi
+ basic_os=udi
;;
ultra3)
basic_machine=a29k-nyu
- os=sym1
+ basic_os=sym1
;;
v810 | necv810)
basic_machine=v810-nec
- os=none
+ basic_os=none
;;
vaxv)
basic_machine=vax-dec
- os=sysv
+ basic_os=sysv
;;
vms)
basic_machine=vax-dec
- os=vms
+ basic_os=vms
+ ;;
+ vsta)
+ basic_machine=i386-pc
+ basic_os=vsta
;;
vxworks960)
basic_machine=i960-wrs
- os=vxworks
+ basic_os=vxworks
;;
vxworks68)
basic_machine=m68k-wrs
- os=vxworks
+ basic_os=vxworks
;;
vxworks29k)
basic_machine=a29k-wrs
- os=vxworks
+ basic_os=vxworks
;;
xbox)
basic_machine=i686-pc
- os=mingw32
+ basic_os=mingw32
;;
ymp)
basic_machine=ymp-cray
- os=unicos
+ basic_os=unicos
;;
*)
basic_machine=$1
- os=
+ basic_os=
;;
esac
;;
@@ -685,17 +686,17 @@ case $basic_machine in
bluegene*)
cpu=powerpc
vendor=ibm
- os=cnk
+ basic_os=cnk
;;
decsystem10* | dec10*)
cpu=pdp10
vendor=dec
- os=tops10
+ basic_os=tops10
;;
decsystem20* | dec20*)
cpu=pdp10
vendor=dec
- os=tops20
+ basic_os=tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
@@ -705,7 +706,7 @@ case $basic_machine in
dpx2*)
cpu=m68k
vendor=bull
- os=sysv3
+ basic_os=sysv3
;;
encore | umax | mmax)
cpu=ns32k
@@ -714,7 +715,7 @@ case $basic_machine in
elxsi)
cpu=elxsi
vendor=elxsi
- os=${os:-bsd}
+ basic_os=${basic_os:-bsd}
;;
fx2800)
cpu=i860
@@ -727,7 +728,7 @@ case $basic_machine in
h3050r* | hiux*)
cpu=hppa1.1
vendor=hitachi
- os=hiuxwe2
+ basic_os=hiuxwe2
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
cpu=hppa1.0
@@ -768,38 +769,38 @@ case $basic_machine in
vendor=hp
;;
i*86v32)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ cpu=$(echo "$1" | sed -e 's/86.*/86/')
vendor=pc
- os=sysv32
+ basic_os=sysv32
;;
i*86v4*)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ cpu=$(echo "$1" | sed -e 's/86.*/86/')
vendor=pc
- os=sysv4
+ basic_os=sysv4
;;
i*86v)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ cpu=$(echo "$1" | sed -e 's/86.*/86/')
vendor=pc
- os=sysv
+ basic_os=sysv
;;
i*86sol2)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ cpu=$(echo "$1" | sed -e 's/86.*/86/')
vendor=pc
- os=solaris2
+ basic_os=solaris2
;;
j90 | j90-cray)
cpu=j90
vendor=cray
- os=${os:-unicos}
+ basic_os=${basic_os:-unicos}
;;
iris | iris4d)
cpu=mips
vendor=sgi
- case $os in
+ case $basic_os in
irix*)
;;
*)
- os=irix4
+ basic_os=irix4
;;
esac
;;
@@ -810,24 +811,26 @@ case $basic_machine in
*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
cpu=m68k
vendor=atari
- os=mint
+ basic_os=mint
;;
news-3600 | risc-news)
cpu=mips
vendor=sony
- os=newsos
+ basic_os=newsos
;;
next | m*-next)
cpu=m68k
vendor=next
- case $os in
- nextstep* )
+ case $basic_os in
+ openstep*)
+ ;;
+ nextstep*)
;;
ns2*)
- os=nextstep2
+ basic_os=nextstep2
;;
*)
- os=nextstep3
+ basic_os=nextstep3
;;
esac
;;
@@ -838,12 +841,12 @@ case $basic_machine in
op50n-* | op60c-*)
cpu=hppa1.1
vendor=oki
- os=proelf
+ basic_os=proelf
;;
pa-hitachi)
cpu=hppa1.1
vendor=hitachi
- os=hiuxwe2
+ basic_os=hiuxwe2
;;
pbd)
cpu=sparc
@@ -880,12 +883,12 @@ case $basic_machine in
sde)
cpu=mipsisa32
vendor=sde
- os=${os:-elf}
+ basic_os=${basic_os:-elf}
;;
simso-wrs)
cpu=sparclite
vendor=wrs
- os=vxworks
+ basic_os=vxworks
;;
tower | tower-32)
cpu=m68k
@@ -902,7 +905,7 @@ case $basic_machine in
w89k-*)
cpu=hppa1.1
vendor=winbond
- os=proelf
+ basic_os=proelf
;;
none)
cpu=none
@@ -914,10 +917,11 @@ case $basic_machine in
;;
leon-*|leon[3-9]-*)
cpu=sparc
- vendor=`echo "$basic_machine" | sed 's/-.*//'`
+ vendor=$(echo "$basic_machine" | sed 's/-.*//')
;;
*-*)
+ # shellcheck disable=SC2162
IFS="-" read cpu vendor <<EOF
$basic_machine
EOF
@@ -954,11 +958,11 @@ case $cpu-$vendor in
# some cases the only manufacturer, in others, it is the most popular.
craynv-unknown)
vendor=cray
- os=${os:-unicosmp}
+ basic_os=${basic_os:-unicosmp}
;;
c90-unknown | c90-cray)
vendor=cray
- os=${os:-unicos}
+ basic_os=${Basic_os:-unicos}
;;
fx80-unknown)
vendor=alliant
@@ -1002,7 +1006,7 @@ case $cpu-$vendor in
dpx20-unknown | dpx20-bull)
cpu=rs6000
vendor=bull
- os=${os:-bosx}
+ basic_os=${basic_os:-bosx}
;;
# Here we normalize CPU types irrespective of the vendor
@@ -1011,7 +1015,7 @@ case $cpu-$vendor in
;;
blackfin-*)
cpu=bfin
- os=linux
+ basic_os=linux
;;
c54x-*)
cpu=tic54x
@@ -1024,7 +1028,7 @@ case $cpu-$vendor in
;;
e500v[12]-*)
cpu=powerpc
- os=$os"spe"
+ basic_os=${basic_os}"spe"
;;
mips3*-*)
cpu=mips64
@@ -1034,7 +1038,7 @@ case $cpu-$vendor in
;;
m68knommu-*)
cpu=m68k
- os=linux
+ basic_os=linux
;;
m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
cpu=s12z
@@ -1044,7 +1048,7 @@ case $cpu-$vendor in
;;
parisc-*)
cpu=hppa
- os=linux
+ basic_os=linux
;;
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
cpu=i586
@@ -1080,7 +1084,7 @@ case $cpu-$vendor in
cpu=mipsisa64sb1el
;;
sh5e[lb]-*)
- cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
+ cpu=$(echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/')
;;
spur-*)
cpu=spur
@@ -1098,13 +1102,16 @@ case $cpu-$vendor in
cpu=x86_64
;;
xscale-* | xscalee[bl]-*)
- cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
+ cpu=$(echo "$cpu" | sed 's/^xscale/arm/')
+ ;;
+ arm64-*)
+ cpu=aarch64
;;
# Recognize the canonical CPU Types that limit and/or modify the
# company names they are paired with.
cr16-*)
- os=${os:-elf}
+ basic_os=${basic_os:-elf}
;;
crisv32-* | etraxfs*-*)
cpu=crisv32
@@ -1115,7 +1122,7 @@ case $cpu-$vendor in
vendor=axis
;;
crx-*)
- os=${os:-elf}
+ basic_os=${basic_os:-elf}
;;
neo-tandem)
cpu=neo
@@ -1137,16 +1144,12 @@ case $cpu-$vendor in
cpu=nsx
vendor=tandem
;;
- s390-*)
- cpu=s390
- vendor=ibm
- ;;
- s390x-*)
- cpu=s390x
- vendor=ibm
+ mipsallegrexel-sony)
+ cpu=mipsallegrexel
+ vendor=sony
;;
tile*-*)
- os=${os:-linux-gnu}
+ basic_os=${basic_os:-linux-gnu}
;;
*)
@@ -1162,13 +1165,13 @@ case $cpu-$vendor in
| alphapca5[67] | alpha64pca5[67] \
| am33_2.0 \
| amdgcn \
- | arc | arceb \
+ | arc | arceb | arc32 | arc64 \
| arm | armh | arm[lb]e | arme[lb] | armv* \
| avr | avr32 \
| asmjs \
| ba \
| be32 | be64 \
- | bfin | bs2000 \
+ | bfin | bpf | bs2000 \
| c[123]* | c30 | [cjt]90 | c4x \
| c8051 | clipper | craynv | csky | cydra \
| d10v | d30v | dlx | dsp16xx \
@@ -1182,14 +1185,15 @@ case $cpu-$vendor in
| k1om \
| le32 | le64 \
| lm32 \
+ | loongarch32 | loongarch64 | loongarchx32 \
| m32c | m32r | m32rle \
- | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \
- | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
+ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
+ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
| m88110 | m88k | maxq | mb | mcore | mep | metag \
| microblaze | microblazeel \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
- | mips64 | mips64el \
+ | mips64 | mips64eb | mips64el \
| mips64octeon | mips64octeonel \
| mips64orion | mips64orionel \
| mips64r5900 | mips64r5900el \
@@ -1200,9 +1204,13 @@ case $cpu-$vendor in
| mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r3 | mipsisa32r3el \
+ | mipsisa32r5 | mipsisa32r5el \
| mipsisa32r6 | mipsisa32r6el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r3 | mipsisa64r3el \
+ | mipsisa64r5 | mipsisa64r5el \
| mipsisa64r6 | mipsisa64r6el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
@@ -1216,32 +1224,37 @@ case $cpu-$vendor in
| nds32 | nds32le | nds32be \
| nfp \
| nios | nios2 | nios2eb | nios2el \
- | none | np1 | ns16k | ns32k \
+ | none | np1 | ns16k | ns32k | nvptx \
| open8 \
| or1k* \
| or32 \
| orion \
+ | picochip \
| pdp10 | pdp11 | pj | pjl | pn | power \
| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
| pru \
| pyramid \
- | riscv | riscv32 | riscv64 \
+ | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
| rl78 | romp | rs6000 | rx \
+ | s390 | s390x \
| score \
- | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+ | sh | shl \
+ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
| sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
| sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
| spu \
| tahoe \
+ | thumbv7* \
| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
| tron \
| ubicom32 \
- | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
| vax \
| visium \
- | wasm32 \
+ | w65 \
+ | wasm32 | wasm64 \
| we32k \
| x86 | x86_64 | xc16x | xgate | xps100 \
| xstormy16 | xtensa* \
@@ -1271,8 +1284,47 @@ esac
# Decode manufacturer-specific aliases for certain operating systems.
-if [ x$os != x ]
+if test x$basic_os != x
then
+
+# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
+# set os.
+case $basic_os in
+ gnu/linux*)
+ kernel=linux
+ os=$(echo $basic_os | sed -e 's|gnu/linux|gnu|')
+ ;;
+ os2-emx)
+ kernel=os2
+ os=$(echo $basic_os | sed -e 's|os2-emx|emx|')
+ ;;
+ nto-qnx*)
+ kernel=nto
+ os=$(echo $basic_os | sed -e 's|nto-qnx|qnx|')
+ ;;
+ *-*)
+ # shellcheck disable=SC2162
+ IFS="-" read kernel os <<EOF
+$basic_os
+EOF
+ ;;
+ # Default OS when just kernel was specified
+ nto*)
+ kernel=nto
+ os=$(echo $basic_os | sed -e 's|nto|qnx|')
+ ;;
+ linux*)
+ kernel=linux
+ os=$(echo $basic_os | sed -e 's|linux|gnu|')
+ ;;
+ *)
+ kernel=
+ os=$basic_os
+ ;;
+esac
+
+# Now, normalize the OS (knowing we just have one component, it's not a kernel,
+# etc.)
case $os in
# First match some system type aliases that might get confused
# with valid system types.
@@ -1284,7 +1336,7 @@ case $os in
os=cnk
;;
solaris1 | solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ os=$(echo $os | sed -e 's|solaris1|sunos4|')
;;
solaris)
os=solaris2
@@ -1292,9 +1344,6 @@ case $os in
unixware*)
os=sysv4.2uw
;;
- gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
- ;;
# es1800 is here to avoid being matched by es* (a different OS)
es1800*)
os=ose
@@ -1316,12 +1365,9 @@ case $os in
os=sco3.2v4
;;
sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- ;;
- sco3.2v[4-9]* | sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
+ os=$(echo $os | sed -e 's/sco3.2./sco3.2v/')
;;
- scout)
+ sco*v* | scout)
# Don't match below
;;
sco*)
@@ -1330,78 +1376,26 @@ case $os in
psos*)
os=psos
;;
- # Now accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST end in a * to match a version number.
- # sysv* is not here because it comes later, after sysvr4.
- gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
- | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
- | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
- | sym* | kopensolaris* | plan9* \
- | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
- | aos* | aros* | cloudabi* | sortix* \
- | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
- | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
- | knetbsd* | mirbsd* | netbsd* \
- | bitrig* | openbsd* | solidbsd* | libertybsd* \
- | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
- | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
- | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
- | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
- | chorusrdb* | cegcc* | glidix* \
- | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
- | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
- | linux-newlib* | linux-musl* | linux-uclibc* \
- | uxpv* | beos* | mpeix* | udk* | moxiebox* \
- | interix* | uwin* | mks* | rhapsody* | darwin* \
- | openstep* | oskit* | conix* | pw32* | nonstopux* \
- | storm-chaos* | tops10* | tenex* | tops20* | its* \
- | os2* | vos* | palmos* | uclinux* | nucleus* \
- | morphos* | superux* | rtmk* | windiss* \
- | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
- | skyos* | haiku* | rdos* | toppers* | drops* | es* \
- | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
- | midnightbsd* | amdhsa* | unleashed*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
qnx*)
- case $cpu in
- x86 | i*86)
- ;;
- *)
- os=nto-$os
- ;;
- esac
+ os=qnx
;;
hiux*)
os=hiuxwe2
;;
- nto-qnx*)
- ;;
- nto*)
- os=`echo $os | sed -e 's|nto|nto-qnx|'`
- ;;
- sim | xray | os68k* | v88r* \
- | windows* | osx | abug | netware* | os9* \
- | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
- ;;
- linux-dietlibc)
- os=linux-dietlibc
- ;;
- linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
lynx*178)
os=lynxos178
;;
lynx*5)
os=lynxos5
;;
+ lynxos*)
+ # don't get caught up in next wildcard
+ ;;
lynx*)
os=lynxos
;;
- mac*)
- os=`echo "$os" | sed -e 's|mac|macos|'`
+ mac[0-9]*)
+ os=$(echo "$os" | sed -e 's|mac|macos|')
;;
opened*)
os=openedition
@@ -1410,10 +1404,10 @@ case $os in
os=os400
;;
sunos5*)
- os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
+ os=$(echo "$os" | sed -e 's|sunos5|solaris2|')
;;
sunos6*)
- os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
+ os=$(echo "$os" | sed -e 's|sunos6|solaris3|')
;;
wince*)
os=wince
@@ -1445,12 +1439,9 @@ case $os in
ns2)
os=nextstep2
;;
- nsk*)
- os=nsk
- ;;
# Preserve the version number of sinix5.
sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
+ os=$(echo $os | sed -e 's|sinix|sysv|')
;;
sinix*)
os=sysv4
@@ -1473,18 +1464,12 @@ case $os in
sysvr4)
os=sysv4
;;
- # This must come after sysvr4.
- sysv*)
- ;;
ose*)
os=ose
;;
*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
os=mint
;;
- zvmoe)
- os=zvmoe
- ;;
dicos*)
os=dicos
;;
@@ -1501,19 +1486,11 @@ case $os in
;;
esac
;;
- nacl*)
- ;;
- ios)
- ;;
- none)
- ;;
- *-eabi)
- ;;
*)
- echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
- exit 1
+ # No normalization, but not necessarily accepted, that comes below.
;;
esac
+
else
# Here we handle the default operating systems that come with various machines.
@@ -1526,6 +1503,7 @@ else
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
+kernel=
case $cpu-$vendor in
score-*)
os=elf
@@ -1537,7 +1515,8 @@ case $cpu-$vendor in
os=riscix1.2
;;
arm*-rebel)
- os=linux
+ kernel=linux
+ os=gnu
;;
arm*-semi)
os=aout
@@ -1703,84 +1682,178 @@ case $cpu-$vendor in
os=none
;;
esac
+
fi
+# Now, validate our (potentially fixed-up) OS.
+case $os in
+ # Sometimes we do "kernel-libc", so those need to count as OSes.
+ musl* | newlib* | uclibc*)
+ ;;
+ # Likewise for "kernel-abi"
+ eabi* | gnueabi*)
+ ;;
+ # VxWorks passes extra cpu info in the 4th filed.
+ simlinux | simwindows | spe)
+ ;;
+ # Now accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST end in a * to match a version number.
+ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
+ | hiux* | abug | nacl* | netware* | windows* \
+ | os9* | macos* | osx* | ios* \
+ | mpw* | magic* | mmixware* | mon960* | lnews* \
+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+ | aos* | aros* | cloudabi* | sortix* | twizzler* \
+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+ | mirbsd* | netbsd* | dicos* | openedition* | ose* \
+ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
+ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
+ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+ | udi* | lites* | ieee* | go32* | aux* | hcos* \
+ | chorusrdb* | cegcc* | glidix* | serenity* \
+ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+ | midipix* | mingw32* | mingw64* | mint* \
+ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+ | interix* | uwin* | mks* | rhapsody* | darwin* \
+ | openstep* | oskit* | conix* | pw32* | nonstopux* \
+ | storm-chaos* | tops10* | tenex* | tops20* | its* \
+ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
+ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
+ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*)
+ ;;
+ # This one is extra strict with allowed versions
+ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ ;;
+ none)
+ ;;
+ *)
+ echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# As a final step for OS-related things, validate the OS-kernel combination
+# (given a valid OS), if there is a kernel.
+case $kernel-$os in
+ linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* )
+ ;;
+ uclinux-uclibc* )
+ ;;
+ -dietlibc* | -newlib* | -musl* | -uclibc* )
+ # These are just libc implementations, not actual OSes, and thus
+ # require a kernel.
+ echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
+ exit 1
+ ;;
+ kfreebsd*-gnu* | kopensolaris*-gnu*)
+ ;;
+ vxworks-simlinux | vxworks-simwindows | vxworks-spe)
+ ;;
+ nto-qnx*)
+ ;;
+ os2-emx)
+ ;;
+ *-eabi* | *-gnueabi*)
+ ;;
+ -*)
+ # Blank kernel with real OS is always fine.
+ ;;
+ *-*)
+ echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
+ exit 1
+ ;;
+esac
+
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
case $vendor in
unknown)
- case $os in
- riscix*)
+ case $cpu-$os in
+ *-riscix*)
vendor=acorn
;;
- sunos*)
+ *-sunos*)
vendor=sun
;;
- cnk*|-aix*)
+ *-cnk* | *-aix*)
vendor=ibm
;;
- beos*)
+ *-beos*)
vendor=be
;;
- hpux*)
+ *-hpux*)
vendor=hp
;;
- mpeix*)
+ *-mpeix*)
vendor=hp
;;
- hiux*)
+ *-hiux*)
vendor=hitachi
;;
- unos*)
+ *-unos*)
vendor=crds
;;
- dgux*)
+ *-dgux*)
vendor=dg
;;
- luna*)
+ *-luna*)
vendor=omron
;;
- genix*)
+ *-genix*)
vendor=ns
;;
- clix*)
+ *-clix*)
vendor=intergraph
;;
- mvs* | opened*)
+ *-mvs* | *-opened*)
+ vendor=ibm
+ ;;
+ *-os400*)
vendor=ibm
;;
- os400*)
+ s390-* | s390x-*)
vendor=ibm
;;
- ptx*)
+ *-ptx*)
vendor=sequent
;;
- tpf*)
+ *-tpf*)
vendor=ibm
;;
- vxsim* | vxworks* | windiss*)
+ *-vxsim* | *-vxworks* | *-windiss*)
vendor=wrs
;;
- aux*)
+ *-aux*)
vendor=apple
;;
- hms*)
+ *-hms*)
vendor=hitachi
;;
- mpw* | macos*)
+ *-mpw* | *-macos*)
vendor=apple
;;
- *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
vendor=atari
;;
- vos*)
+ *-vos*)
vendor=stratus
;;
esac
;;
esac
-echo "$cpu-$vendor-$os"
+echo "$cpu-$vendor-${kernel:+$kernel-}$os"
exit
# Local variables:
diff --git a/build-aux/depcomp b/build-aux/depcomp
index 65cbf709..6b391623 100755
--- a/build-aux/depcomp
+++ b/build-aux/depcomp
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/build-aux/install-sh b/build-aux/install-sh
index 8175c640..ec298b53 100755
--- a/build-aux/install-sh
+++ b/build-aux/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2018-03-11.20; # UTC
+scriptversion=2020-11-14.01; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -69,6 +69,11 @@ posix_mkdir=
# Desired mode of installed file.
mode=0755
+# Create dirs (including intermediate dirs) using mode 755.
+# This is like GNU 'install' as of coreutils 8.32 (2020).
+mkdir_umask=22
+
+backupsuffix=
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
@@ -99,18 +104,28 @@ Options:
--version display version info and exit.
-c (ignored)
- -C install only if different (preserve the last data modification time)
+ -C install only if different (preserve data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
+ -p pass -p to $cpprog.
-s $stripprog installed files.
+ -S SUFFIX attempt to back up existing files, with suffix SUFFIX.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
+
+By default, rm is invoked with -f; when overridden with RMPROG,
+it's up to you to specify -f if you want it.
+
+If -S is not specified, no backups are attempted.
+
+Email bug reports to bug-automake@gnu.org.
+Automake home page: https://www.gnu.org/software/automake/
"
while test $# -ne 0; do
@@ -137,8 +152,13 @@ while test $# -ne 0; do
-o) chowncmd="$chownprog $2"
shift;;
+ -p) cpprog="$cpprog -p";;
+
-s) stripcmd=$stripprog;;
+ -S) backupsuffix="$2"
+ shift;;
+
-t)
is_target_a_directory=always
dst_arg=$2
@@ -255,6 +275,10 @@ do
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
+ # Don't chown directories that already exist.
+ if test $dstdir_status = 0; then
+ chowncmd=""
+ fi
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
@@ -301,22 +325,6 @@ do
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
@@ -326,52 +334,49 @@ do
fi
posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- # Note that $RANDOM variable is not portable (e.g. dash); Use it
- # here however when possible just to lower collision chance.
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-
- trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- # Because "mkdir -p" follows existing symlinks and we likely work
- # directly in world-writeable /tmp, make sure that the '$tmpdir'
- # directory is successfully created first before we actually test
- # 'mkdir -p' feature.
- if (umask $mkdir_umask &&
- $mkdirprog $mkdir_mode "$tmpdir" &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- test_tmpdir="$tmpdir/a"
- ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
- fi
- trap '' 0;;
- esac;;
+ # The $RANDOM variable is not portable (e.g., dash). Use it
+ # here however when possible just to lower collision chance.
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+
+ trap '
+ ret=$?
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
+ exit $ret
+ ' 0
+
+ # Because "mkdir -p" follows existing symlinks and we likely work
+ # directly in world-writeable /tmp, make sure that the '$tmpdir'
+ # directory is successfully created first before we actually test
+ # 'mkdir -p'.
+ if (umask $mkdir_umask &&
+ $mkdirprog $mkdir_mode "$tmpdir" &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ test_tmpdir="$tmpdir/a"
+ ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+ fi
+ trap '' 0;;
esac
if
@@ -382,7 +387,7 @@ do
then :
else
- # The umask is ridiculous, or mkdir does not conform to POSIX,
+ # mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
@@ -411,7 +416,7 @@ do
prefixes=
else
if $posix_mkdir; then
- (umask=$mkdir_umask &&
+ (umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
@@ -451,7 +456,18 @@ do
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
- (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+ (umask $cp_umask &&
+ { test -z "$stripcmd" || {
+ # Create $dsttmp read-write so that cp doesn't create it read-only,
+ # which would cause strip to fail.
+ if test -z "$doit"; then
+ : >"$dsttmp" # No need to fork-exec 'touch'.
+ else
+ $doit touch "$dsttmp"
+ fi
+ }
+ } &&
+ $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
@@ -477,6 +493,13 @@ do
then
rm -f "$dsttmp"
else
+ # If $backupsuffix is set, and the file being installed
+ # already exists, attempt a backup. Don't worry if it fails,
+ # e.g., if mv doesn't support -f.
+ if test -n "$backupsuffix" && test -f "$dst"; then
+ $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
+ fi
+
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
@@ -491,9 +514,9 @@ do
# file should still install successfully.
{
test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
+ $doit $rmcmd "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh
index 0a87cfdd..b5297538 100644
--- a/build-aux/ltmain.sh
+++ b/build-aux/ltmain.sh
@@ -75,7 +75,7 @@ scriptversion=2019-02-19.15; # UTC
# Copyright (C) 2004-2019 Bootstrap Authors
#
# This file is dual licensed under the terms of the MIT license
-# <https://opensource.org/license/MIT>, and GPL version 3 or later
+# <https://opensource.org/license/MIT>, and GPL version 2 or later
# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
# these licenses when using or redistributing this software or any of
# the files within it. See the URLs above, or the file `LICENSE`
@@ -1485,7 +1485,7 @@ func_lt_ver ()
# Copyright (C) 2010-2019 Bootstrap Authors
#
# This file is dual licensed under the terms of the MIT license
-# <https://opensource.org/license/MIT>, and GPL version 3 or later
+# <https://opensource.org/license/MIT>, and GPL version 2 or later
# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
# these licenses when using or redistributing this software or any of
# the files within it. See the URLs above, or the file `LICENSE`
diff --git a/build-aux/missing b/build-aux/missing
index 625aeb11..8d0eaad2 100755
--- a/build-aux/missing
+++ b/build-aux/missing
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
diff --git a/build-aux/test-driver b/build-aux/test-driver
index b8521a48..9759384a 100755
--- a/build-aux/test-driver
+++ b/build-aux/test-driver
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2020 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -42,11 +42,13 @@ print_usage ()
{
cat <<END
Usage:
- test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
- [--expect-failure={yes|no}] [--color-tests={yes|no}]
- [--enable-hard-errors={yes|no}] [--]
+ test-driver --test-name NAME --log-file PATH --trs-file PATH
+ [--expect-failure {yes|no}] [--color-tests {yes|no}]
+ [--enable-hard-errors {yes|no}] [--]
TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
+
The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+See the GNU Automake documentation for information.
END
}
diff --git a/build-aux/ylwrap b/build-aux/ylwrap
index 5943168d..d1533360 100755
--- a/build-aux/ylwrap
+++ b/build-aux/ylwrap
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
#
# Written by Tom Tromey <tromey@cygnus.com>.
#
diff --git a/conf/Makefile.in b/conf/Makefile.in
index 40df3983..ee1a12ee 100644
--- a/conf/Makefile.in
+++ b/conf/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -89,18 +89,21 @@ build_triplet = @build@
host_triplet = @host@
subdir = conf
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/japhar_grep_cflags.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \
+ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/intlmacosx.m4 \
$(top_srcdir)/m4/jh_path_xml_catalog.m4 \
$(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \
- $(top_srcdir)/m4/ld-no-undefined.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/ld-no-undefined.m4 \
+ $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/warn_lang_flags.m4 \
+ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -208,6 +211,9 @@ CC_FOR_BUILD = @CC_FOR_BUILD@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CRYPTO_LIBS = @CRYPTO_LIBS@
+CRYPT_CFLAGS = @CRYPT_CFLAGS@
+CRYPT_LIBS = @CRYPT_LIBS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
@@ -221,6 +227,8 @@ ECONF_CFLAGS = @ECONF_CFLAGS@
ECONF_LIBS = @ECONF_LIBS@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
+EXE_CFLAGS = @EXE_CFLAGS@
+EXE_LDFLAGS = @EXE_LDFLAGS@
FGREP = @FGREP@
FO2PDF = @FO2PDF@
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
@@ -240,7 +248,6 @@ LEX = @LEX@
LEXLIB = @LEXLIB@
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
LIBAUDIT = @LIBAUDIT@
-LIBCRACK = @LIBCRACK@
LIBCRYPT = @LIBCRYPT@
LIBDB = @LIBDB@
LIBDL = @LIBDL@
@@ -287,8 +294,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PIE_CFLAGS = @PIE_CFLAGS@
-PIE_LDFLAGS = @PIE_LDFLAGS@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -299,6 +304,7 @@ SECUREDIR = @SECUREDIR@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+STRINGPARAM_HMAC = @STRINGPARAM_HMAC@
STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@
STRIP = @STRIP@
TIRPC_CFLAGS = @TIRPC_CFLAGS@
@@ -348,7 +354,6 @@ htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
-libc_cv_fpie = @libc_cv_fpie@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
@@ -356,9 +361,6 @@ localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
-pam_cv_ld_O1 = @pam_cv_ld_O1@
-pam_cv_ld_as_needed = @pam_cv_ld_as_needed@
-pam_cv_ld_no_undefined = @pam_cv_ld_no_undefined@
pam_xauth_path = @pam_xauth_path@
pdfdir = @pdfdir@
prefix = @prefix@
@@ -368,6 +370,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+systemdunitdir = @systemdunitdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
diff --git a/conf/pam.conf b/conf/pam.conf
index 3a06bd66..4961a0aa 100644
--- a/conf/pam.conf
+++ b/conf/pam.conf
@@ -13,14 +13,12 @@
#
chfn auth required pam_unix.so
chfn account required pam_unix.so
-chfn password required pam_cracklib.so retry=3
chfn password required pam_unix.so shadow md5 use_authtok
#
# The PAM configuration file for the `chsh' service
#
chsh auth required pam_unix.so
chsh account required pam_unix.so
-chsh password required pam_cracklib.so retry=3
chsh password required pam_unix.so shadow md5 use_authtok
#
# The PAM configuration file for the `ftp' service
@@ -43,7 +41,6 @@ login auth required pam_unix.so
login auth optional pam_group.so
login account requisite pam_time.so
login account required pam_unix.so
-login password required pam_cracklib.so retry=3
login password required pam_unix.so shadow md5 use_authtok
login session required pam_unix.so
#
@@ -63,7 +60,6 @@ other session required pam_deny.so
#
# The PAM configuration file for the `passwd' service
#
-passwd password requisite pam_cracklib.so retry=3
passwd password required pam_unix.so shadow md5 use_authtok
#
# The PAM configuration file for the `rexec' service
@@ -83,7 +79,6 @@ rlogin auth requisite pam_securetty.so
rlogin auth requisite pam_nologin.so
rlogin auth required pam_rhosts_auth.so
rlogin account required pam_unix.so
-rlogin password required pam_cracklib.so retry=3
rlogin password required pam_unix.so shadow md5 use_authtok
rlogin session required pam_unix.so
rlogin session required pam_limits.so
diff --git a/conf/pam_conv1/Makefile.am b/conf/pam_conv1/Makefile.am
index 4c72162b..88993a20 100644
--- a/conf/pam_conv1/Makefile.am
+++ b/conf/pam_conv1/Makefile.am
@@ -8,7 +8,7 @@ EXTRA_DIST = README
AM_YFLAGS = -d
-AM_CFLAGS = $(WARN_CFLAGS)
+AM_CFLAGS = -I$(top_srcdir)/libpam/include $(WARN_CFLAGS)
pam_conv1_CFLAGS = $(AM_CFLAGS) -Wno-unused-function -Wno-sign-compare
diff --git a/conf/pam_conv1/Makefile.in b/conf/pam_conv1/Makefile.in
index 2fc90687..6685d6cc 100644
--- a/conf/pam_conv1/Makefile.in
+++ b/conf/pam_conv1/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -95,18 +95,21 @@ host_triplet = @host@
noinst_PROGRAMS = pam_conv1$(EXEEXT)
subdir = conf/pam_conv1
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/japhar_grep_cflags.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \
+ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/intlmacosx.m4 \
$(top_srcdir)/m4/jh_path_xml_catalog.m4 \
$(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \
- $(top_srcdir)/m4/ld-no-undefined.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/ld-no-undefined.m4 \
+ $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/warn_lang_flags.m4 \
+ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -227,6 +230,9 @@ CC_FOR_BUILD = @CC_FOR_BUILD@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CRYPTO_LIBS = @CRYPTO_LIBS@
+CRYPT_CFLAGS = @CRYPT_CFLAGS@
+CRYPT_LIBS = @CRYPT_LIBS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
@@ -240,6 +246,8 @@ ECONF_CFLAGS = @ECONF_CFLAGS@
ECONF_LIBS = @ECONF_LIBS@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
+EXE_CFLAGS = @EXE_CFLAGS@
+EXE_LDFLAGS = @EXE_LDFLAGS@
FGREP = @FGREP@
FO2PDF = @FO2PDF@
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
@@ -259,7 +267,6 @@ LEX = @LEX@
LEXLIB = @LEXLIB@
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
LIBAUDIT = @LIBAUDIT@
-LIBCRACK = @LIBCRACK@
LIBCRYPT = @LIBCRYPT@
LIBDB = @LIBDB@
LIBDL = @LIBDL@
@@ -306,8 +313,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PIE_CFLAGS = @PIE_CFLAGS@
-PIE_LDFLAGS = @PIE_LDFLAGS@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -318,6 +323,7 @@ SECUREDIR = @SECUREDIR@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+STRINGPARAM_HMAC = @STRINGPARAM_HMAC@
STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@
STRIP = @STRIP@
TIRPC_CFLAGS = @TIRPC_CFLAGS@
@@ -367,7 +373,6 @@ htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
-libc_cv_fpie = @libc_cv_fpie@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
@@ -375,9 +380,6 @@ localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
-pam_cv_ld_O1 = @pam_cv_ld_O1@
-pam_cv_ld_as_needed = @pam_cv_ld_as_needed@
-pam_cv_ld_no_undefined = @pam_cv_ld_no_undefined@
pam_xauth_path = @pam_xauth_path@
pdfdir = @pdfdir@
prefix = @prefix@
@@ -387,6 +389,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+systemdunitdir = @systemdunitdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
@@ -394,7 +397,7 @@ top_srcdir = @top_srcdir@
CLEANFILES = *~
EXTRA_DIST = README
AM_YFLAGS = -d
-AM_CFLAGS = $(WARN_CFLAGS)
+AM_CFLAGS = -I$(top_srcdir)/libpam/include $(WARN_CFLAGS)
pam_conv1_CFLAGS = $(AM_CFLAGS) -Wno-unused-function -Wno-sign-compare
BUILT_SOURCES = pam_conv_y.h
pam_conv1_SOURCES = pam_conv_l.l pam_conv_y.y
@@ -617,7 +620,8 @@ all-am: Makefile $(PROGRAMS)
installdirs:
install: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) install-am
-install-exec: install-exec-am
+install-exec: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-exec-am
install-data: install-data-am
uninstall: uninstall-am
@@ -724,7 +728,7 @@ ps-am:
uninstall-am:
-.MAKE: all check install install-am install-strip
+.MAKE: all check install install-am install-exec install-strip
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \
diff --git a/conf/pam_conv1/pam_conv_y.c b/conf/pam_conv1/pam_conv_y.c
index 7fcf3d44..519307ce 100644
--- a/conf/pam_conv1/pam_conv_y.c
+++ b/conf/pam_conv1/pam_conv_y.c
@@ -1,8 +1,9 @@
-/* A Bison parser, made by GNU Bison 3.0.5. */
+/* A Bison parser, made by GNU Bison 3.7.6. */
/* Bison implementation for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
+ Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -15,7 +16,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -33,6 +34,10 @@
/* C LALR(1) parser skeleton written by Richard Stallman, by
simplifying the original so-called "semantic" parser. */
+/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
+ especially those whose name start with YY_ or yy_. They are
+ private implementation details that can be changed or removed. */
+
/* All symbols defined below should begin with yy or YY, to avoid
infringing on user name space. This should be done even for local
variables, as they might otherwise be expanded by user macros.
@@ -40,11 +45,11 @@
define necessary library symbols; they are noted "INFRINGES ON
USER NAME SPACE" below. */
-/* Identify Bison output. */
-#define YYBISON 1
+/* Identify Bison output, and Bison version. */
+#define YYBISON 30706
-/* Bison version. */
-#define YYBISON_VERSION "3.0.5"
+/* Bison version string. */
+#define YYBISON_VERSION "3.7.6"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -61,8 +66,8 @@
-/* Copy the first part of user declarations. */
-#line 1 "pam_conv_y.y" /* yacc.c:339 */
+/* First part of user prologue. */
+#line 1 "pam_conv_y.y"
/*
@@ -85,6 +90,8 @@
#include <ctype.h>
#include <sys/stat.h>
+#include <security/_pam_types.h>
+
extern int yylex(void);
int current_line=1;
@@ -104,26 +111,31 @@
const char *old_to_new_ctrl_flag(const char *old);
void yyerror(const char *format, ...);
-#line 108 "pam_conv_y.c" /* yacc.c:339 */
+#line 115 "pam_conv_y.c"
+# ifndef YY_CAST
+# ifdef __cplusplus
+# define YY_CAST(Type, Val) static_cast<Type> (Val)
+# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
+# else
+# define YY_CAST(Type, Val) ((Type) (Val))
+# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
+# endif
+# endif
# ifndef YY_NULLPTR
-# if defined __cplusplus && 201103L <= __cplusplus
-# define YY_NULLPTR nullptr
+# if defined __cplusplus
+# if 201103L <= __cplusplus
+# define YY_NULLPTR nullptr
+# else
+# define YY_NULLPTR 0
+# endif
# else
-# define YY_NULLPTR 0
+# define YY_NULLPTR ((void*)0)
# endif
# endif
-/* Enabling verbose error messages. */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* In a future release of Bison, this section will be replaced
- by #include "y.tab.h". */
+/* Use api.header.include to #include this header
+ instead of duplicating it here. */
#ifndef YY_YY_PAM_CONV_Y_H_INCLUDED
# define YY_YY_PAM_CONV_Y_H_INCLUDED
/* Debug traces. */
@@ -134,34 +146,42 @@
extern int yydebug;
#endif
-/* Token type. */
+/* Token kinds. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
enum yytokentype
{
- NL = 258,
- EOFILE = 259,
- TOK = 260
+ YYEMPTY = -2,
+ YYEOF = 0, /* "end of file" */
+ YYerror = 256, /* error */
+ YYUNDEF = 257, /* "invalid token" */
+ NL = 258, /* NL */
+ EOFILE = 259, /* EOFILE */
+ TOK = 260 /* TOK */
};
+ typedef enum yytokentype yytoken_kind_t;
#endif
-/* Tokens. */
+/* Token kinds. */
+#define YYEMPTY -2
+#define YYEOF 0
+#define YYerror 256
+#define YYUNDEF 257
#define NL 258
#define EOFILE 259
#define TOK 260
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-
union YYSTYPE
{
-#line 43 "pam_conv_y.y" /* yacc.c:355 */
+#line 45 "pam_conv_y.y"
int def;
char *string;
-#line 163 "pam_conv_y.c" /* yacc.c:355 */
-};
+#line 183 "pam_conv_y.c"
+};
typedef union YYSTYPE YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
@@ -173,37 +193,113 @@ extern YYSTYPE yylval;
int yyparse (void);
#endif /* !YY_YY_PAM_CONV_Y_H_INCLUDED */
+/* Symbol kind. */
+enum yysymbol_kind_t
+{
+ YYSYMBOL_YYEMPTY = -2,
+ YYSYMBOL_YYEOF = 0, /* "end of file" */
+ YYSYMBOL_YYerror = 1, /* error */
+ YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
+ YYSYMBOL_NL = 3, /* NL */
+ YYSYMBOL_EOFILE = 4, /* EOFILE */
+ YYSYMBOL_TOK = 5, /* TOK */
+ YYSYMBOL_YYACCEPT = 6, /* $accept */
+ YYSYMBOL_complete = 7, /* complete */
+ YYSYMBOL_line = 8, /* line */
+ YYSYMBOL_tokenls = 9, /* tokenls */
+ YYSYMBOL_path = 10, /* path */
+ YYSYMBOL_tok = 11 /* tok */
+};
+typedef enum yysymbol_kind_t yysymbol_kind_t;
+
-/* Copy the second part of user declarations. */
-#line 180 "pam_conv_y.c" /* yacc.c:358 */
#ifdef short
# undef short
#endif
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
-#else
-typedef unsigned char yytype_uint8;
+/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
+ <limits.h> and (if available) <stdint.h> are included
+ so that the code can choose integer types of a good width. */
+
+#ifndef __PTRDIFF_MAX__
+# include <limits.h> /* INFRINGES ON USER NAME SPACE */
+# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
+# include <stdint.h> /* INFRINGES ON USER NAME SPACE */
+# define YY_STDINT_H
+# endif
#endif
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
+/* Narrow types that promote to a signed type and that can represent a
+ signed or unsigned integer of at least N bits. In tables they can
+ save space and decrease cache pressure. Promoting to a signed type
+ helps avoid bugs in integer arithmetic. */
+
+#ifdef __INT_LEAST8_MAX__
+typedef __INT_LEAST8_TYPE__ yytype_int8;
+#elif defined YY_STDINT_H
+typedef int_least8_t yytype_int8;
#else
typedef signed char yytype_int8;
#endif
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
+#ifdef __INT_LEAST16_MAX__
+typedef __INT_LEAST16_TYPE__ yytype_int16;
+#elif defined YY_STDINT_H
+typedef int_least16_t yytype_int16;
#else
-typedef unsigned short int yytype_uint16;
+typedef short yytype_int16;
+#endif
+
+/* Work around bug in HP-UX 11.23, which defines these macros
+ incorrectly for preprocessor constants. This workaround can likely
+ be removed in 2023, as HPE has promised support for HP-UX 11.23
+ (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
+ <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
+#ifdef __hpux
+# undef UINT_LEAST8_MAX
+# undef UINT_LEAST16_MAX
+# define UINT_LEAST8_MAX 255
+# define UINT_LEAST16_MAX 65535
#endif
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
+#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
+typedef __UINT_LEAST8_TYPE__ yytype_uint8;
+#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
+ && UINT_LEAST8_MAX <= INT_MAX)
+typedef uint_least8_t yytype_uint8;
+#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
+typedef unsigned char yytype_uint8;
+#else
+typedef short yytype_uint8;
+#endif
+
+#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
+typedef __UINT_LEAST16_TYPE__ yytype_uint16;
+#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
+ && UINT_LEAST16_MAX <= INT_MAX)
+typedef uint_least16_t yytype_uint16;
+#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
+typedef unsigned short yytype_uint16;
#else
-typedef short int yytype_int16;
+typedef int yytype_uint16;
+#endif
+
+#ifndef YYPTRDIFF_T
+# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
+# define YYPTRDIFF_T __PTRDIFF_TYPE__
+# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
+# elif defined PTRDIFF_MAX
+# ifndef ptrdiff_t
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# endif
+# define YYPTRDIFF_T ptrdiff_t
+# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
+# else
+# define YYPTRDIFF_T long
+# define YYPTRDIFF_MAXIMUM LONG_MAX
+# endif
#endif
#ifndef YYSIZE_T
@@ -211,15 +307,28 @@ typedef short int yytype_int16;
# define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
# define YYSIZE_T size_t
-# elif ! defined YYSIZE_T
+# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# else
-# define YYSIZE_T unsigned int
+# define YYSIZE_T unsigned
# endif
#endif
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+#define YYSIZE_MAXIMUM \
+ YY_CAST (YYPTRDIFF_T, \
+ (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
+ ? YYPTRDIFF_MAXIMUM \
+ : YY_CAST (YYSIZE_T, -1)))
+
+#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
+
+
+/* Stored state numbers (used for stacks). */
+typedef yytype_int8 yy_state_t;
+
+/* State numbers in computations. */
+typedef int yy_state_fast_t;
#ifndef YY_
# if defined YYENABLE_NLS && YYENABLE_NLS
@@ -233,47 +342,37 @@ typedef short int yytype_int16;
# endif
#endif
-#ifndef YY_ATTRIBUTE
-# if (defined __GNUC__ \
- && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
- || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
-# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
-# else
-# define YY_ATTRIBUTE(Spec) /* empty */
-# endif
-#endif
#ifndef YY_ATTRIBUTE_PURE
-# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
+# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
+# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
+# else
+# define YY_ATTRIBUTE_PURE
+# endif
#endif
#ifndef YY_ATTRIBUTE_UNUSED
-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
-#endif
-
-#if !defined _Noreturn \
- && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
-# if defined _MSC_VER && 1200 <= _MSC_VER
-# define _Noreturn __declspec (noreturn)
+# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
+# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
# else
-# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
+# define YY_ATTRIBUTE_UNUSED
# endif
#endif
/* Suppress unused-variable warnings by "using" E. */
#if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
+# define YY_USE(E) ((void) (E))
#else
-# define YYUSE(E) /* empty */
+# define YY_USE(E) /* empty */
#endif
-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
- _Pragma ("GCC diagnostic push") \
- _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
_Pragma ("GCC diagnostic pop")
#else
# define YY_INITIAL_VALUE(Value) Value
@@ -286,8 +385,22 @@ typedef short int yytype_int16;
# define YY_INITIAL_VALUE(Value) /* Nothing. */
#endif
+#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
+# define YY_IGNORE_USELESS_CAST_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
+# define YY_IGNORE_USELESS_CAST_END \
+ _Pragma ("GCC diagnostic pop")
+#endif
+#ifndef YY_IGNORE_USELESS_CAST_BEGIN
+# define YY_IGNORE_USELESS_CAST_BEGIN
+# define YY_IGNORE_USELESS_CAST_END
+#endif
+
+
+#define YY_ASSERT(E) ((void) (0 && (E)))
-#if ! defined yyoverflow || YYERROR_VERBOSE
+#if !defined yyoverflow
/* The parser invokes alloca or malloc; define the necessary symbols. */
@@ -352,8 +465,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
+#endif /* !defined yyoverflow */
#if (! defined yyoverflow \
&& (! defined __cplusplus \
@@ -362,17 +474,17 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
/* A type that is properly aligned for any stack member. */
union yyalloc
{
- yytype_int16 yyss_alloc;
+ yy_state_t yyss_alloc;
YYSTYPE yyvs_alloc;
};
/* The size of the maximum gap between one aligned stack and the next. */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
/* The size of an array large to enough to hold all stacks, each with
N elements. */
# define YYSTACK_BYTES(N) \
- ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
# define YYCOPY_NEEDED 1
@@ -385,11 +497,11 @@ union yyalloc
# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
do \
{ \
- YYSIZE_T yynewbytes; \
+ YYPTRDIFF_T yynewbytes; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
+ yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / YYSIZEOF (*yyptr); \
} \
while (0)
@@ -401,12 +513,12 @@ union yyalloc
# ifndef YYCOPY
# if defined __GNUC__ && 1 < __GNUC__
# define YYCOPY(Dst, Src, Count) \
- __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
+ __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
# else
# define YYCOPY(Dst, Src, Count) \
do \
{ \
- YYSIZE_T yyi; \
+ YYPTRDIFF_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(Dst)[yyi] = (Src)[yyi]; \
} \
@@ -429,17 +541,20 @@ union yyalloc
/* YYNSTATES -- Number of states. */
#define YYNSTATES 17
-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
- by yylex, with out-of-bounds checking. */
-#define YYUNDEFTOK 2
+/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 260
-#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
+ as returned by yylex, with out-of-bounds checking. */
+#define YYTRANSLATE(YYX) \
+ (0 <= (YYX) && (YYX) <= YYMAXUTOK \
+ ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
+ : YYSYMBOL_YYUNDEF)
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
- as returned by yylex, without out-of-bounds checking. */
-static const yytype_uint8 yytranslate[] =
+ as returned by yylex. */
+static const yytype_int8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -474,38 +589,51 @@ static const yytype_uint8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint8 yyrline[] =
{
- 0, 56, 56, 58, 59, 60, 66, 130, 136, 139,
- 155, 161
+ 0, 59, 59, 60, 61, 62, 68, 132, 138, 141,
+ 157, 163
};
#endif
-#if YYDEBUG || YYERROR_VERBOSE || 0
+/** Accessing symbol of state STATE. */
+#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
+
+#if YYDEBUG || 0
+/* The user-facing name of the symbol whose (internal) number is
+ YYSYMBOL. No bounds checking. */
+static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
+
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
- "$end", "error", "$undefined", "NL", "EOFILE", "TOK", "$accept",
- "complete", "line", "tokenls", "path", "tok", YY_NULLPTR
+ "\"end of file\"", "error", "\"invalid token\"", "NL", "EOFILE", "TOK",
+ "$accept", "complete", "line", "tokenls", "path", "tok", YY_NULLPTR
};
+
+static const char *
+yysymbol_name (yysymbol_kind_t yysymbol)
+{
+ return yytname[yysymbol];
+}
#endif
-# ifdef YYPRINT
+#ifdef YYPRINT
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
(internal) symbol number NUM (which must be that of a token). */
-static const yytype_uint16 yytoknum[] =
+static const yytype_int16 yytoknum[] =
{
0, 256, 257, 258, 259, 260
};
-# endif
+#endif
-#define YYPACT_NINF -9
+#define YYPACT_NINF (-9)
-#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-9)))
+#define yypact_value_is_default(Yyn) \
+ ((Yyn) == YYPACT_NINF)
-#define YYTABLE_NINF -1
+#define YYTABLE_NINF (-1)
-#define yytable_value_is_error(Yytable_value) \
+#define yytable_value_is_error(Yyn) \
0
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
@@ -519,7 +647,7 @@ static const yytype_int8 yypact[] =
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
Performed when YYTABLE does not specify something else to do. Zero
means the default is an error. */
-static const yytype_uint8 yydefact[] =
+static const yytype_int8 yydefact[] =
{
2, 0, 1, 0, 3, 5, 11, 4, 0, 7,
0, 0, 10, 8, 0, 6, 9
@@ -534,13 +662,13 @@ static const yytype_int8 yypgoto[] =
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int8 yydefgoto[] =
{
- -1, 1, 7, 14, 13, 8
+ 0, 1, 7, 14, 13, 8
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule whose
number is the opposite. If YYTABLE_NINF, syntax error. */
-static const yytype_uint8 yytable[] =
+static const yytype_int8 yytable[] =
{
10, 15, 11, 6, 2, 3, 16, 4, 5, 6,
9, 6, 0, 12
@@ -554,31 +682,31 @@ static const yytype_int8 yycheck[] =
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
-static const yytype_uint8 yystos[] =
+static const yytype_int8 yystos[] =
{
0, 7, 0, 1, 3, 4, 5, 8, 11, 3,
11, 11, 5, 10, 9, 3, 11
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const yytype_uint8 yyr1[] =
+static const yytype_int8 yyr1[] =
{
0, 6, 7, 7, 7, 7, 8, 8, 9, 9,
10, 11
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
-static const yytype_uint8 yyr2[] =
+static const yytype_int8 yyr2[] =
{
0, 2, 0, 2, 2, 2, 6, 2, 0, 2,
1, 1
};
+enum { YYENOMEM = -2 };
+
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
-#define YYEMPTY (-2)
-#define YYEOF 0
#define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab
@@ -587,27 +715,26 @@ static const yytype_uint8 yyr2[] =
#define YYRECOVERING() (!!yyerrstatus)
-#define YYBACKUP(Token, Value) \
-do \
- if (yychar == YYEMPTY) \
- { \
- yychar = (Token); \
- yylval = (Value); \
- YYPOPSTACK (yylen); \
- yystate = *yyssp; \
- goto yybackup; \
- } \
- else \
- { \
- yyerror (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
-while (0)
-
-/* Error token number */
-#define YYTERROR 1
-#define YYERRCODE 256
-
+#define YYBACKUP(Token, Value) \
+ do \
+ if (yychar == YYEMPTY) \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
+ YYPOPSTACK (yylen); \
+ yystate = *yyssp; \
+ goto yybackup; \
+ } \
+ else \
+ { \
+ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+ while (0)
+
+/* Backward compatibility with an undocumented macro.
+ Use YYerror or YYUNDEF. */
+#define YYERRCODE YYUNDEF
/* Enable debugging if requested. */
@@ -625,54 +752,58 @@ do { \
} while (0)
/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
+# ifndef YY_LOCATION_PRINT
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
do { \
if (yydebug) \
{ \
YYFPRINTF (stderr, "%s ", Title); \
yy_symbol_print (stderr, \
- Type, Value); \
+ Kind, Value); \
YYFPRINTF (stderr, "\n"); \
} \
} while (0)
-/*----------------------------------------.
-| Print this symbol's value on YYOUTPUT. |
-`----------------------------------------*/
+/*-----------------------------------.
+| Print this symbol's value on YYO. |
+`-----------------------------------*/
static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+yy_symbol_value_print (FILE *yyo,
+ yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
{
- FILE *yyo = yyoutput;
- YYUSE (yyo);
+ FILE *yyoutput = yyo;
+ YY_USE (yyoutput);
if (!yyvaluep)
return;
# ifdef YYPRINT
- if (yytype < YYNTOKENS)
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+ if (yykind < YYNTOKENS)
+ YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
# endif
- YYUSE (yytype);
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+ YY_USE (yykind);
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
}
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
+/*---------------------------.
+| Print this symbol on YYO. |
+`---------------------------*/
static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+yy_symbol_print (FILE *yyo,
+ yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
{
- YYFPRINTF (yyoutput, "%s %s (",
- yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
+ YYFPRINTF (yyo, "%s %s (",
+ yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
- yy_symbol_value_print (yyoutput, yytype, yyvaluep);
- YYFPRINTF (yyoutput, ")");
+ yy_symbol_value_print (yyo, yykind, yyvaluep);
+ YYFPRINTF (yyo, ")");
}
/*------------------------------------------------------------------.
@@ -681,7 +812,7 @@ yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
`------------------------------------------------------------------*/
static void
-yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
+yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
{
YYFPRINTF (stderr, "Stack now");
for (; yybottom <= yytop; yybottom++)
@@ -704,21 +835,21 @@ do { \
`------------------------------------------------*/
static void
-yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
+yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
+ int yyrule)
{
- unsigned long int yylno = yyrline[yyrule];
+ int yylno = yyrline[yyrule];
int yynrhs = yyr2[yyrule];
int yyi;
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
yyrule - 1, yylno);
/* The symbols being reduced. */
for (yyi = 0; yyi < yynrhs; yyi++)
{
YYFPRINTF (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr,
- yystos[yyssp[yyi + 1 - yynrhs]],
- &(yyvsp[(yyi + 1) - (yynrhs)])
- );
+ YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
+ &yyvsp[(yyi + 1) - (yynrhs)]);
YYFPRINTF (stderr, "\n");
}
}
@@ -733,8 +864,8 @@ do { \
multiple parsers can coexist. */
int yydebug;
#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YYDPRINTF(Args) ((void) 0)
+# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */
@@ -757,250 +888,30 @@ int yydebug;
#endif
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-# if defined __GLIBC__ && defined _STRING_H
-# define yystrlen strlen
-# else
-/* Return the length of YYSTR. */
-static YYSIZE_T
-yystrlen (const char *yystr)
-{
- YYSIZE_T yylen;
- for (yylen = 0; yystr[yylen]; yylen++)
- continue;
- return yylen;
-}
-# endif
-# endif
-
-# ifndef yystpcpy
-# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-# define yystpcpy stpcpy
-# else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-{
- char *yyd = yydest;
- const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-
- return yyd - 1;
-}
-# endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
- quotes and backslashes, so that it's suitable for yyerror. The
- heuristic is that double-quoting is unnecessary unless the string
- contains an apostrophe, a comma, or backslash (other than
- backslash-backslash). YYSTR is taken from yytname. If YYRES is
- null, do not copy; instead, return the length of what the result
- would have been. */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
- if (*yystr == '"')
- {
- YYSIZE_T yyn = 0;
- char const *yyp = yystr;
-
- for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
-
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- /* Fall through. */
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
-
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
- do_not_strip_quotes: ;
- }
-
- if (! yyres)
- return yystrlen (yystr);
-
- return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
-
-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
- about the unexpected token YYTOKEN for the state stack whose top is
- YYSSP.
-
- Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
- not large enough to hold the message. In that case, also set
- *YYMSG_ALLOC to the required number of bytes. Return 2 if the
- required number of bytes is too large to store. */
-static int
-yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
- yytype_int16 *yyssp, int yytoken)
-{
- YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
- YYSIZE_T yysize = yysize0;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- /* Internationalized format string. */
- const char *yyformat = YY_NULLPTR;
- /* Arguments of yyformat. */
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- /* Number of reported tokens (one for the "unexpected", one per
- "expected"). */
- int yycount = 0;
-
- /* There are many possibilities here to consider:
- - If this state is a consistent state with a default action, then
- the only way this function was invoked is if the default action
- is an error action. In that case, don't check for expected
- tokens because there are none.
- - The only way there can be no lookahead present (in yychar) is if
- this state is a consistent state with a default action. Thus,
- detecting the absence of a lookahead is sufficient to determine
- that there is no unexpected or expected token to report. In that
- case, just report a simple "syntax error".
- - Don't assume there isn't a lookahead just because this state is a
- consistent state with a default action. There might have been a
- previous inconsistent state, consistent state with a non-default
- action, or user semantic action that manipulated yychar.
- - Of course, the expected token list depends on states to have
- correct lookahead information, and it depends on the parser not
- to perform extra reductions after fetching a lookahead from the
- scanner and before detecting a syntax error. Thus, state merging
- (from LALR or IELR) and default reductions corrupt the expected
- token list. However, the list is correct for canonical LR with
- one exception: it will still contain any token that will not be
- accepted due to an error action in a later state.
- */
- if (yytoken != YYEMPTY)
- {
- int yyn = yypact[*yyssp];
- yyarg[yycount++] = yytname[yytoken];
- if (!yypact_value_is_default (yyn))
- {
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. In other words, skip the first -YYN actions for
- this state because they are default actions. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yyx;
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
- && !yytable_value_is_error (yytable[yyx + yyn]))
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- {
- YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
- if (! (yysize <= yysize1
- && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
- return 2;
- yysize = yysize1;
- }
- }
- }
- }
-
- switch (yycount)
- {
-# define YYCASE_(N, S) \
- case N: \
- yyformat = S; \
- break
- default: /* Avoid compiler warnings. */
- YYCASE_(0, YY_("syntax error"));
- YYCASE_(1, YY_("syntax error, unexpected %s"));
- YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
- YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
- YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
- YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-# undef YYCASE_
- }
- {
- YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
- if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
- return 2;
- yysize = yysize1;
- }
- if (*yymsg_alloc < yysize)
- {
- *yymsg_alloc = 2 * yysize;
- if (! (yysize <= *yymsg_alloc
- && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
- *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
- return 1;
- }
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- {
- char *yyp = *yymsg;
- int yyi = 0;
- while ((*yyp = *yyformat) != '\0')
- if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyformat += 2;
- }
- else
- {
- yyp++;
- yyformat++;
- }
- }
- return 0;
-}
-#endif /* YYERROR_VERBOSE */
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
`-----------------------------------------------*/
static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+yydestruct (const char *yymsg,
+ yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
{
- YYUSE (yyvaluep);
+ YY_USE (yyvaluep);
if (!yymsg)
yymsg = "Deleting";
- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+ YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- YYUSE (yytype);
+ YY_USE (yykind);
YY_IGNORE_MAYBE_UNINITIALIZED_END
}
-
-
-/* The lookahead symbol. */
+/* Lookahead token kind. */
int yychar;
/* The semantic value of the lookahead symbol. */
@@ -1009,6 +920,8 @@ YYSTYPE yylval;
int yynerrs;
+
+
/*----------.
| yyparse. |
`----------*/
@@ -1016,43 +929,36 @@ int yynerrs;
int
yyparse (void)
{
- int yystate;
+ yy_state_fast_t yystate = 0;
/* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
-
- /* The stacks and their tools:
- 'yyss': related to states.
- 'yyvs': related to semantic values.
+ int yyerrstatus = 0;
- Refer to the stacks through separate pointers, to allow yyoverflow
+ /* Refer to the stacks through separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
- /* The state stack. */
- yytype_int16 yyssa[YYINITDEPTH];
- yytype_int16 *yyss;
- yytype_int16 *yyssp;
+ /* Their size. */
+ YYPTRDIFF_T yystacksize = YYINITDEPTH;
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs;
- YYSTYPE *yyvsp;
+ /* The state stack: array, bottom, top. */
+ yy_state_t yyssa[YYINITDEPTH];
+ yy_state_t *yyss = yyssa;
+ yy_state_t *yyssp = yyss;
- YYSIZE_T yystacksize;
+ /* The semantic value stack: array, bottom, top. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+ YYSTYPE *yyvsp = yyvs;
int yyn;
+ /* The return value of yyparse. */
int yyresult;
- /* Lookahead token as an internal (translated) token number. */
- int yytoken = 0;
+ /* Lookahead symbol kind. */
+ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
/* The variables used to return semantic value and location from the
action routines. */
YYSTYPE yyval;
-#if YYERROR_VERBOSE
- /* Buffer for error messages, and its allocated size. */
- char yymsgbuf[128];
- char *yymsg = yymsgbuf;
- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
+
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
@@ -1060,58 +966,60 @@ yyparse (void)
Keep to zero when no symbol should be popped. */
int yylen = 0;
- yyssp = yyss = yyssa;
- yyvsp = yyvs = yyvsa;
- yystacksize = YYINITDEPTH;
-
YYDPRINTF ((stderr, "Starting parse\n"));
- yystate = 0;
- yyerrstatus = 0;
- yynerrs = 0;
yychar = YYEMPTY; /* Cause a token to be read. */
goto yysetstate;
+
/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate. |
+| yynewstate -- push a new state, which is found in yystate. |
`------------------------------------------------------------*/
- yynewstate:
+yynewstate:
/* In all cases, when you get here, the value and location stacks
have just been pushed. So pushing a state here evens the stacks. */
yyssp++;
- yysetstate:
- *yyssp = yystate;
+
+/*--------------------------------------------------------------------.
+| yysetstate -- set current state (the top of the stack) to yystate. |
+`--------------------------------------------------------------------*/
+yysetstate:
+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+ YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
+ YY_IGNORE_USELESS_CAST_BEGIN
+ *yyssp = YY_CAST (yy_state_t, yystate);
+ YY_IGNORE_USELESS_CAST_END
+ YY_STACK_PRINT (yyss, yyssp);
if (yyss + yystacksize - 1 <= yyssp)
+#if !defined yyoverflow && !defined YYSTACK_RELOCATE
+ goto yyexhaustedlab;
+#else
{
/* Get the current used size of the three stacks, in elements. */
- YYSIZE_T yysize = yyssp - yyss + 1;
+ YYPTRDIFF_T yysize = yyssp - yyss + 1;
-#ifdef yyoverflow
+# if defined yyoverflow
{
/* Give user a chance to reallocate the stack. Use copies of
these so that the &'s don't force the real ones into
memory. */
+ yy_state_t *yyss1 = yyss;
YYSTYPE *yyvs1 = yyvs;
- yytype_int16 *yyss1 = yyss;
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
be undefined if yyoverflow is a macro. */
yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
+ &yyss1, yysize * YYSIZEOF (*yyssp),
+ &yyvs1, yysize * YYSIZEOF (*yyvsp),
&yystacksize);
-
yyss = yyss1;
yyvs = yyvs1;
}
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
- goto yyexhaustedlab;
-# else
+# else /* defined YYSTACK_RELOCATE */
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
goto yyexhaustedlab;
@@ -1120,9 +1028,10 @@ yyparse (void)
yystacksize = YYMAXDEPTH;
{
- yytype_int16 *yyss1 = yyss;
+ yy_state_t *yyss1 = yyss;
union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ YY_CAST (union yyalloc *,
+ YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
if (! yyptr)
goto yyexhaustedlab;
YYSTACK_RELOCATE (yyss_alloc, yyss);
@@ -1132,30 +1041,30 @@ yyparse (void)
YYSTACK_FREE (yyss1);
}
# endif
-#endif /* no yyoverflow */
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
- (unsigned long int) yystacksize));
+ YY_IGNORE_USELESS_CAST_BEGIN
+ YYDPRINTF ((stderr, "Stack size increased to %ld\n",
+ YY_CAST (long, yystacksize)));
+ YY_IGNORE_USELESS_CAST_END
if (yyss + yystacksize - 1 <= yyssp)
YYABORT;
}
-
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
if (yystate == YYFINAL)
YYACCEPT;
goto yybackup;
+
/*-----------.
| yybackup. |
`-----------*/
yybackup:
-
/* Do appropriate processing given the current state. Read a
lookahead token if we need one and don't already have one. */
@@ -1166,18 +1075,29 @@ yybackup:
/* Not known => get a lookahead token if don't already have one. */
- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
+ /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
if (yychar == YYEMPTY)
{
- YYDPRINTF ((stderr, "Reading a token: "));
+ YYDPRINTF ((stderr, "Reading a token\n"));
yychar = yylex ();
}
if (yychar <= YYEOF)
{
- yychar = yytoken = YYEOF;
+ yychar = YYEOF;
+ yytoken = YYSYMBOL_YYEOF;
YYDPRINTF ((stderr, "Now at end of input.\n"));
}
+ else if (yychar == YYerror)
+ {
+ /* The scanner already issued an error message, process directly
+ to error recovery. But do not keep the error token as
+ lookahead, it is too special and may lead us to an endless
+ loop in error recovery. */
+ yychar = YYUNDEF;
+ yytoken = YYSYMBOL_YYerror;
+ goto yyerrlab1;
+ }
else
{
yytoken = YYTRANSLATE (yychar);
@@ -1205,15 +1125,13 @@ yybackup:
/* Shift the lookahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
- /* Discard the shifted token. */
- yychar = YYEMPTY;
-
yystate = yyn;
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
YY_IGNORE_MAYBE_UNINITIALIZED_END
+ /* Discard the shifted token. */
+ yychar = YYEMPTY;
goto yynewstate;
@@ -1228,7 +1146,7 @@ yydefault:
/*-----------------------------.
-| yyreduce -- Do a reduction. |
+| yyreduce -- do a reduction. |
`-----------------------------*/
yyreduce:
/* yyn is the number of a rule to reduce with. */
@@ -1248,17 +1166,17 @@ yyreduce:
YY_REDUCE_PRINT (yyn);
switch (yyn)
{
- case 5:
-#line 60 "pam_conv_y.y" /* yacc.c:1648 */
- {
+ case 5: /* complete: complete EOFILE */
+#line 62 "pam_conv_y.y"
+ {
return 0;
}
-#line 1257 "pam_conv_y.c" /* yacc.c:1648 */
+#line 1175 "pam_conv_y.c"
break;
- case 6:
-#line 66 "pam_conv_y.y" /* yacc.c:1648 */
- {
+ case 6: /* line: tok tok tok path tokenls NL */
+#line 68 "pam_conv_y.y"
+ {
char *filename;
FILE *conf;
int i;
@@ -1322,28 +1240,28 @@ yyreduce:
fclose(conf);
}
-#line 1326 "pam_conv_y.c" /* yacc.c:1648 */
+#line 1244 "pam_conv_y.c"
break;
- case 7:
-#line 130 "pam_conv_y.y" /* yacc.c:1648 */
- {
+ case 7: /* line: error NL */
+#line 132 "pam_conv_y.y"
+ {
yyerror("malformed line");
}
-#line 1334 "pam_conv_y.c" /* yacc.c:1648 */
+#line 1252 "pam_conv_y.c"
break;
- case 8:
-#line 136 "pam_conv_y.y" /* yacc.c:1648 */
- {
+ case 8: /* tokenls: %empty */
+#line 138 "pam_conv_y.y"
+ {
(yyval.string)=NULL;
}
-#line 1342 "pam_conv_y.c" /* yacc.c:1648 */
+#line 1260 "pam_conv_y.c"
break;
- case 9:
-#line 139 "pam_conv_y.y" /* yacc.c:1648 */
- {
+ case 9: /* tokenls: tokenls tok */
+#line 141 "pam_conv_y.y"
+ {
int len;
if ((yyvsp[-1].string)) {
@@ -1356,28 +1274,29 @@ yyreduce:
(yyval.string) = (yyvsp[0].string);
}
}
-#line 1360 "pam_conv_y.c" /* yacc.c:1648 */
+#line 1278 "pam_conv_y.c"
break;
- case 10:
-#line 155 "pam_conv_y.y" /* yacc.c:1648 */
- {
+ case 10: /* path: TOK */
+#line 157 "pam_conv_y.y"
+ {
/* XXX - this could be used to check if file present */
(yyval.string) = strdup(yytext);
}
-#line 1369 "pam_conv_y.c" /* yacc.c:1648 */
+#line 1287 "pam_conv_y.c"
break;
- case 11:
-#line 161 "pam_conv_y.y" /* yacc.c:1648 */
- {
+ case 11: /* tok: TOK */
+#line 163 "pam_conv_y.y"
+ {
(yyval.string) = strdup(yytext);
}
-#line 1377 "pam_conv_y.c" /* yacc.c:1648 */
+#line 1295 "pam_conv_y.c"
break;
-#line 1381 "pam_conv_y.c" /* yacc.c:1648 */
+#line 1299 "pam_conv_y.c"
+
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -1391,25 +1310,23 @@ yyreduce:
case of YYERROR or YYBACKUP, subsequent parser actions might lead
to an incorrect destructor call or verbose syntax error message
before the lookahead is translated. */
- YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+ YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
YYPOPSTACK (yylen);
yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
*++yyvsp = yyval;
/* Now 'shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
number reduced by. */
-
- yyn = yyr1[yyn];
-
- yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
- if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
- yystate = yytable[yystate];
- else
- yystate = yydefgoto[yyn - YYNTOKENS];
+ {
+ const int yylhs = yyr1[yyn] - YYNTOKENS;
+ const int yyi = yypgoto[yylhs] + *yyssp;
+ yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
+ ? yytable[yyi]
+ : yydefgoto[yylhs]);
+ }
goto yynewstate;
@@ -1420,50 +1337,14 @@ yyreduce:
yyerrlab:
/* Make sure we have latest lookahead translation. See comments at
user semantic actions for why this is necessary. */
- yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
-
+ yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
++yynerrs;
-#if ! YYERROR_VERBOSE
yyerror (YY_("syntax error"));
-#else
-# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
- yyssp, yytoken)
- {
- char const *yymsgp = YY_("syntax error");
- int yysyntax_error_status;
- yysyntax_error_status = YYSYNTAX_ERROR;
- if (yysyntax_error_status == 0)
- yymsgp = yymsg;
- else if (yysyntax_error_status == 1)
- {
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
- if (!yymsg)
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- yysyntax_error_status = 2;
- }
- else
- {
- yysyntax_error_status = YYSYNTAX_ERROR;
- yymsgp = yymsg;
- }
- }
- yyerror (yymsgp);
- if (yysyntax_error_status == 2)
- goto yyexhaustedlab;
- }
-# undef YYSYNTAX_ERROR
-#endif
}
-
-
if (yyerrstatus == 3)
{
/* If just tried and failed to reuse lookahead token after an
@@ -1492,12 +1373,10 @@ yyerrlab:
| yyerrorlab -- error raised explicitly by YYERROR. |
`---------------------------------------------------*/
yyerrorlab:
-
- /* Pacify compilers like GCC when the user code never invokes
- YYERROR and the label yyerrorlab therefore never appears in user
- code. */
- if (/*CONSTCOND*/ 0)
- goto yyerrorlab;
+ /* Pacify compilers when the user code never invokes YYERROR and the
+ label yyerrorlab therefore never appears in user code. */
+ if (0)
+ YYERROR;
/* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */
@@ -1514,13 +1393,14 @@ yyerrorlab:
yyerrlab1:
yyerrstatus = 3; /* Each real token shifted decrements this. */
+ /* Pop stack until we find a state that shifts the error token. */
for (;;)
{
yyn = yypact[yystate];
if (!yypact_value_is_default (yyn))
{
- yyn += YYTERROR;
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+ yyn += YYSYMBOL_YYerror;
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
{
yyn = yytable[yyn];
if (0 < yyn)
@@ -1534,7 +1414,7 @@ yyerrlab1:
yydestruct ("Error: popping",
- yystos[yystate], yyvsp);
+ YY_ACCESSING_SYMBOL (yystate), yyvsp);
YYPOPSTACK (1);
yystate = *yyssp;
YY_STACK_PRINT (yyss, yyssp);
@@ -1546,7 +1426,7 @@ yyerrlab1:
/* Shift the error token. */
- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+ YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
yystate = yyn;
goto yynewstate;
@@ -1559,6 +1439,7 @@ yyacceptlab:
yyresult = 0;
goto yyreturn;
+
/*-----------------------------------.
| yyabortlab -- YYABORT comes here. |
`-----------------------------------*/
@@ -1566,16 +1447,21 @@ yyabortlab:
yyresult = 1;
goto yyreturn;
-#if !defined yyoverflow || YYERROR_VERBOSE
+
+#if !defined yyoverflow
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
`-------------------------------------------------*/
yyexhaustedlab:
yyerror (YY_("memory exhausted"));
yyresult = 2;
- /* Fall through. */
+ goto yyreturn;
#endif
+
+/*-------------------------------------------------------.
+| yyreturn -- parsing is finished, clean up and return. |
+`-------------------------------------------------------*/
yyreturn:
if (yychar != YYEMPTY)
{
@@ -1592,20 +1478,18 @@ yyreturn:
while (yyssp != yyss)
{
yydestruct ("Cleanup: popping",
- yystos[*yyssp], yyvsp);
+ YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
YYPOPSTACK (1);
}
#ifndef yyoverflow
if (yyss != yyssa)
YYSTACK_FREE (yyss);
#endif
-#if YYERROR_VERBOSE
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
-#endif
+
return yyresult;
}
-#line 165 "pam_conv_y.y" /* yacc.c:1907 */
+
+#line 167 "pam_conv_y.y"
const char *old_to_new_ctrl_flag(const char *old)
@@ -1628,6 +1512,7 @@ const char *old_to_new_ctrl_flag(const char *old)
return clist[i];
}
+PAM_FORMAT((printf, 1, 2))
void yyerror(const char *format, ...)
{
va_list args;
diff --git a/conf/pam_conv1/pam_conv_y.h b/conf/pam_conv1/pam_conv_y.h
index a2151d19..17bdcea1 100644
--- a/conf/pam_conv1/pam_conv_y.h
+++ b/conf/pam_conv1/pam_conv_y.h
@@ -1,8 +1,9 @@
-/* A Bison parser, made by GNU Bison 3.0.5. */
+/* A Bison parser, made by GNU Bison 3.7.6. */
/* Bison interface for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
+ Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -15,7 +16,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -30,6 +31,10 @@
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
+/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
+ especially those whose name start with YY_ or yy_. They are
+ private implementation details that can be changed or removed. */
+
#ifndef YY_YY_PAM_CONV_Y_H_INCLUDED
# define YY_YY_PAM_CONV_Y_H_INCLUDED
/* Debug traces. */
@@ -40,34 +45,42 @@
extern int yydebug;
#endif
-/* Token type. */
+/* Token kinds. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
enum yytokentype
{
- NL = 258,
- EOFILE = 259,
- TOK = 260
+ YYEMPTY = -2,
+ YYEOF = 0, /* "end of file" */
+ YYerror = 256, /* error */
+ YYUNDEF = 257, /* "invalid token" */
+ NL = 258, /* NL */
+ EOFILE = 259, /* EOFILE */
+ TOK = 260 /* TOK */
};
+ typedef enum yytokentype yytoken_kind_t;
#endif
-/* Tokens. */
+/* Token kinds. */
+#define YYEMPTY -2
+#define YYEOF 0
+#define YYerror 256
+#define YYUNDEF 257
#define NL 258
#define EOFILE 259
#define TOK 260
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-
union YYSTYPE
{
-#line 43 "pam_conv_y.y" /* yacc.c:1910 */
+#line 45 "pam_conv_y.y"
int def;
char *string;
-#line 69 "pam_conv_y.h" /* yacc.c:1910 */
-};
+#line 82 "pam_conv_y.h"
+};
typedef union YYSTYPE YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
diff --git a/conf/pam_conv1/pam_conv_y.y b/conf/pam_conv1/pam_conv_y.y
index c971abf4..66d80440 100644
--- a/conf/pam_conv1/pam_conv_y.y
+++ b/conf/pam_conv1/pam_conv_y.y
@@ -20,6 +20,8 @@
#include <ctype.h>
#include <sys/stat.h>
+#include <security/_pam_types.h>
+
extern int yylex(void);
int current_line=1;
@@ -184,6 +186,7 @@ const char *old_to_new_ctrl_flag(const char *old)
return clist[i];
}
+PAM_FORMAT((printf, 1, 2))
void yyerror(const char *format, ...)
{
va_list args;
diff --git a/config.h.in b/config.h.in
index b43f19b2..89cf309b 100644
--- a/config.h.in
+++ b/config.h.in
@@ -22,12 +22,6 @@
the CoreFoundation framework. */
#undef HAVE_CFPREFERENCESCOPYAPPVALUE
-/* Define to 1 if you have the <crack.h> header file. */
-#undef HAVE_CRACK_H
-
-/* Define to 1 if you have the `crypt_gensalt_r' function. */
-#undef HAVE_CRYPT_GENSALT_R
-
/* Define to 1 if you have the <crypt.h> header file. */
#undef HAVE_CRYPT_H
@@ -145,15 +139,9 @@
/* Define to 1 if audit support should be compiled in. */
#undef HAVE_LIBAUDIT
-/* Define to 1 if xcrypt support should be compiled in. */
-#undef HAVE_LIBXCRYPT
-
/* Define to 1 if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H
-/* Define to 1 if you have the <linux/magic.h> header file. */
-#undef HAVE_LINUX_MAGIC_H
-
/* Define to 1 if you have the `logwtmp' function. */
#undef HAVE_LOGWTMP
@@ -264,9 +252,6 @@
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
-/* Define to 1 if you have the <sys/vfs.h> header file. */
-#undef HAVE_SYS_VFS_H
-
/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
#undef HAVE_SYS_WAIT_H
@@ -291,9 +276,6 @@
/* Define to 1 if you have the `vprintf' function. */
#undef HAVE_VPRINTF
-/* Define to 1 if you have the <xcrypt.h> header file. */
-#undef HAVE_XCRYPT_H
-
/* Define to 1 if you have the `yperr_string' function. */
#undef HAVE_YPERR_STRING
@@ -342,6 +324,9 @@
/* libpam should observe a global authentication lock */
#undef PAM_LOCKING
+/* libpam_misc misc_conv() buffer size. */
+#undef PAM_MISC_CONV_BUFSIZE
+
/* Path where mails are stored */
#undef PAM_PATH_MAILDIR
@@ -372,7 +357,7 @@
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
#undef TM_IN_SYS_TIME
-/* define if your compiler has __att ribute__ ((unused)) */
+/* Define if the compiler supports __attribute__((unused)) */
#undef UNUSED
/* Define to 1 if the lckpwdf function should be used */
@@ -406,6 +391,9 @@
/* Version number of package */
#undef VERSION
+/* OpenSSL provides crypto algorithm for hmac */
+#undef WITH_OPENSSL
+
/* Defined if SE Linux support is compiled in */
#undef WITH_SELINUX
diff --git a/configure b/configure
index b22e1db6..4a12fad7 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Linux-PAM 1.4.0.
+# Generated by GNU Autoconf 2.69 for Linux-PAM 1.5.2.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Linux-PAM'
PACKAGE_TARNAME='Linux-PAM'
-PACKAGE_VERSION='1.4.0'
-PACKAGE_STRING='Linux-PAM 1.4.0'
+PACKAGE_VERSION='1.5.2'
+PACKAGE_STRING='Linux-PAM 1.5.2'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -636,12 +636,10 @@ am__EXEEXT_TRUE
LTLIBOBJS
COND_BUILD_PAM_USERDB_FALSE
COND_BUILD_PAM_USERDB_TRUE
+COND_BUILD_PAM_UNIX_FALSE
+COND_BUILD_PAM_UNIX_TRUE
COND_BUILD_PAM_TTY_AUDIT_FALSE
COND_BUILD_PAM_TTY_AUDIT_TRUE
-COND_BUILD_PAM_TALLY2_FALSE
-COND_BUILD_PAM_TALLY2_TRUE
-COND_BUILD_PAM_TALLY_FALSE
-COND_BUILD_PAM_TALLY_TRUE
COND_BUILD_PAM_SETQUOTA_FALSE
COND_BUILD_PAM_SETQUOTA_TRUE
COND_BUILD_PAM_SEPERMIT_FALSE
@@ -656,8 +654,7 @@ COND_BUILD_PAM_LASTLOG_FALSE
COND_BUILD_PAM_LASTLOG_TRUE
COND_BUILD_PAM_KEYINIT_FALSE
COND_BUILD_PAM_KEYINIT_TRUE
-COND_BUILD_PAM_CRACKLIB_FALSE
-COND_BUILD_PAM_CRACKLIB_TRUE
+systemdunitdir
POSUB
LTLIBINTL
LIBINTL
@@ -686,6 +683,10 @@ XML_CATALOG_FILE
XMLLINT
XSLTPROC
LIBOBJS
+COND_USE_OPENSSL_FALSE
+COND_USE_OPENSSL_TRUE
+STRINGPARAM_HMAC
+CRYPTO_LIBS
STRINGPARAM_VENDORDIR
ECONF_LIBS
ECONF_CFLAGS
@@ -696,13 +697,14 @@ NSL_LIBS
NSL_CFLAGS
TIRPC_LIBS
TIRPC_CFLAGS
+LIBDB
+LIBCRYPT
+CRYPT_LIBS
+CRYPT_CFLAGS
PKG_CONFIG_LIBDIR
PKG_CONFIG_PATH
PKG_CONFIG
-LIBDB
-LIBCRYPT
LIBAUDIT
-LIBCRACK
LIBDL
pam_xauth_path
SCONFIGDIR
@@ -716,9 +718,8 @@ LIBPRELUDE_CFLAGS
LIBPRELUDE_CONFIG
HAVE_DOC_FALSE
HAVE_DOC_TRUE
-PIE_LDFLAGS
-PIE_CFLAGS
-libc_cv_fpie
+EXE_LDFLAGS
+EXE_CFLAGS
HAVE_VERSIONING_FALSE
HAVE_VERSIONING_TRUE
BUILD_LDFLAGS
@@ -726,9 +727,6 @@ BUILD_CFLAGS
BUILD_CPPFLAGS
CC_FOR_BUILD
WARN_CFLAGS
-pam_cv_ld_O1
-pam_cv_ld_no_undefined
-pam_cv_ld_as_needed
LEXLIB
LEX_OUTPUT_ROOT
LEX
@@ -875,7 +873,6 @@ enable_read_both_confs
enable_lckpwdf
with_mailspool
with_xauth
-enable_cracklib
enable_audit
with_randomdev
enable_db
@@ -885,6 +882,7 @@ enable_usergroups
enable_selinux
enable_econf
enable_vendordir
+enable_openssl
enable_regenerate_docu
with_xml_catalog
enable_nls
@@ -893,9 +891,10 @@ with_libiconv_prefix
with_libintl_prefix
with_uidmin
with_sysuidmin
-with_kerneloverflowuid
-enable_tally
-enable_tally2
+with_kernel_overflow_uid
+with_systemdunitdir
+enable_unix
+with_misc_conv_bufsize
'
ac_precious_vars='build_alias
host_alias
@@ -912,6 +911,8 @@ YFLAGS
PKG_CONFIG
PKG_CONFIG_PATH
PKG_CONFIG_LIBDIR
+CRYPT_CFLAGS
+CRYPT_LIBS
TIRPC_CFLAGS
TIRPC_LIBS
NSL_CFLAGS
@@ -1458,7 +1459,7 @@ if test "$ac_init_help" = "long"; then
# 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.
cat <<_ACEOF
-\`configure' configures Linux-PAM 1.4.0 to adapt to many kinds of systems.
+\`configure' configures Linux-PAM 1.5.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1528,7 +1529,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Linux-PAM 1.4.0:";;
+ short | recursive ) echo "Configuration of Linux-PAM 1.5.2:";;
esac
cat <<\_ACEOF
@@ -1563,7 +1564,6 @@ Optional Features:
--enable-read-both-confs
read both /etc/pam.d and /etc/pam.conf files
--disable-lckpwdf do not use the lckpwdf function
- --enable-cracklib build deprecated pam_cracklib module
--disable-audit do not enable audit support
--enable-db=(db|ndbm|yes|no)
Default behavior 'yes', which is to check for libdb
@@ -1575,12 +1575,12 @@ Optional Features:
--disable-econf do not use libeconf
--enable-vendordir=DIR Directory for distribution provided configuration
files
+ --enable-openssl use OpenSSL crypto libraries
--disable-regenerate-docu
Don't re-build documentation from XML sources
--disable-nls do not use Native Language Support
--disable-rpath do not hardcode runtime library paths
- --enable-tally build deprecated pam_tally module
- --enable-tally2 build deprecated pam_tally2 module
+ --disable-unix do not build pam_unix module
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -1616,6 +1616,11 @@ Optional Packages:
default value for system user min uid (101)
--with-kernel-overflow-uid=<number>
kernel overflow uid, default (uint16_t)-2=65534
+ --with-systemdunitdir=DIR
+ path to systemd service directory
+ --with-misc-conv-bufsize=<number>
+ Size of input buffer for libpam_misc's misc_conv()
+ conversation function, default=4096
Some influential environment variables:
CC C compiler command
@@ -1639,6 +1644,9 @@ Some influential environment variables:
directories to add to pkg-config's search path
PKG_CONFIG_LIBDIR
path overriding pkg-config's built-in search path
+ CRYPT_CFLAGS
+ C compiler flags for CRYPT, overriding pkg-config
+ CRYPT_LIBS linker flags for CRYPT, overriding pkg-config
TIRPC_CFLAGS
C compiler flags for TIRPC, overriding pkg-config
TIRPC_LIBS linker flags for TIRPC, overriding pkg-config
@@ -1714,7 +1722,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Linux-PAM configure 1.4.0
+Linux-PAM configure 1.5.2
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2074,7 +2082,7 @@ else
/* Declare this function with the same prototype as __builtin_$2.
This removes a warning about conflicting types for built-in function $2 */
__typeof__(__builtin_$2) $2;
-__typeof__(__builtin_$2) *f = $2;
+__typeof__(__builtin_$2) *volatile f = $2;
int
main ()
@@ -2265,7 +2273,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Linux-PAM $as_me 1.4.0, which was
+It was created by Linux-PAM $as_me 1.5.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2822,12 +2830,7 @@ program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
am_aux_dir=`cd "$ac_aux_dir" && pwd`
if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
@@ -3132,7 +3135,7 @@ fi
# Define the identity of the package.
PACKAGE='Linux-PAM'
- VERSION='1.4.0'
+ VERSION='1.5.2'
cat >>confdefs.h <<_ACEOF
@@ -13512,95 +13515,139 @@ $as_echo "no" >&6; }
fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports --as-needed" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports --as-needed" >&5
$as_echo_n "checking whether ld supports --as-needed... " >&6; }
if ${pam_cv_ld_as_needed+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat > conftest.c <<EOF
-int main (void) { return 0; }
-EOF
- if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
- -o conftest.o conftest.c
- -Wl,--as-needed 1>&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }
- then
- pam_cv_ld_as_needed=yes
- LDFLAGS="$LDFLAGS -Wl,--as-needed"
- else
- pam_cv_ld_as_needed=no
- fi
- rm -f conftest*
+ saved_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -Wl,--as-needed"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ pam_cv_ld_as_needed=yes
+else
+ pam_cv_ld_as_needed=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$saved_LDFLAGS"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pam_cv_ld_as_needed" >&5
$as_echo "$pam_cv_ld_as_needed" >&6; }
+ if test $pam_cv_ld_as_needed = yes; then :
+ LDFLAGS="$LDFLAGS -Wl,--as-needed"
+fi
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports --no-undefined" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports --no-undefined" >&5
$as_echo_n "checking whether ld supports --no-undefined... " >&6; }
if ${pam_cv_ld_no_undefined+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat > conftest.c <<EOF
-int main (void) { return 0; }
-EOF
- if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
- -o conftest.o conftest.c
- -Wl,--no-undefined 1>&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }
- then
- pam_cv_ld_no_undefined=yes
- LDFLAGS="$LDFLAGS -Wl,--no-undefined"
- else
- pam_cv_ld_no_undefined=no
- fi
- rm -f conftest*
+ saved_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -Wl,--no-undefined"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ pam_cv_ld_no_undefined=yes
+else
+ pam_cv_ld_no_undefined=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$saved_LDFLAGS"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pam_cv_ld_no_undefined" >&5
$as_echo "$pam_cv_ld_no_undefined" >&6; }
+ if test $pam_cv_ld_no_undefined = yes; then :
+ LDFLAGS="$LDFLAGS -Wl,--no-undefined"
+fi
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports -O1" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports -O1" >&5
$as_echo_n "checking whether ld supports -O1... " >&6; }
if ${pam_cv_ld_O1+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat > conftest.c <<EOF
-int main (void) { return 0; }
-EOF
- if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
- -o conftest.o conftest.c
- -Wl,-O1 1>&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }
- then
- pam_cv_ld_O1=yes
- LDFLAGS="$LDFLAGS -Wl,-O1"
- else
- pam_cv_ld_O1=no
- fi
- rm -f conftest*
+ saved_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -Wl,-O1"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ pam_cv_ld_O1=yes
+else
+ pam_cv_ld_O1=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$saved_LDFLAGS"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pam_cv_ld_O1" >&5
$as_echo "$pam_cv_ld_O1" >&6; }
+ if test $pam_cv_ld_O1 = yes; then :
+ LDFLAGS="$LDFLAGS -Wl,-O1"
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports \"-z now\"" >&5
+$as_echo_n "checking whether ld supports \"-z now\"... " >&6; }
+if ${pam_cv_ld_z_now+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ saved_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -Wl,-z,now"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int
+main ()
+{
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ pam_cv_ld_z_now=yes
+else
+ pam_cv_ld_z_now=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$saved_LDFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pam_cv_ld_z_now" >&5
+$as_echo "$pam_cv_ld_z_now" >&6; }
+ if test $pam_cv_ld_z_now = yes; then :
+ ZNOW_LDFLAGS="-Wl,-z,now"
+else
+ ZNOW_LDFLAGS=
+fi
# Check whether --enable-largefile was given.
@@ -13804,72 +13851,1556 @@ rm -rf conftest*
fi
-Werror_option=
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -W" >&5
+$as_echo_n "checking whether $CC handles -W... " >&6; }
+if ${gl_cv_warn_CFLAGS__W+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -W"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__W=yes
+else
+ gl_cv_warn_CFLAGS__W=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__W" >&5
+$as_echo "$gl_cv_warn_CFLAGS__W" >&6; }
+if test "x$gl_cv_warn_CFLAGS__W" = xyes; then :
+ as_fn_append WARN_CFLAGS " -W"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wall" >&5
+$as_echo_n "checking whether $CC handles -Wall... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wall+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wall"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wall=yes
+else
+ gl_cv_warn_CFLAGS__Wall=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wall" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wall" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wall" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wall"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wbad-function-cast" >&5
+$as_echo_n "checking whether $CC handles -Wbad-function-cast... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wbad_function_cast+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wbad-function-cast"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wbad_function_cast=yes
+else
+ gl_cv_warn_CFLAGS__Wbad_function_cast=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wbad_function_cast" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wbad_function_cast" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wbad_function_cast" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wbad-function-cast"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wcast-align" >&5
+$as_echo_n "checking whether $CC handles -Wcast-align... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wcast_align+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wcast-align"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wcast_align=yes
+else
+ gl_cv_warn_CFLAGS__Wcast_align=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wcast_align" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wcast_align" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wcast_align" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wcast-align"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wcast-align=strict" >&5
+$as_echo_n "checking whether $CC handles -Wcast-align=strict... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wcast_align_strict+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wcast-align=strict"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wcast_align_strict=yes
+else
+ gl_cv_warn_CFLAGS__Wcast_align_strict=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wcast_align_strict" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wcast_align_strict" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wcast_align_strict" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wcast-align=strict"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wcast-qual" >&5
+$as_echo_n "checking whether $CC handles -Wcast-qual... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wcast_qual+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wcast-qual"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wcast_qual=yes
+else
+ gl_cv_warn_CFLAGS__Wcast_qual=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wcast_qual" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wcast_qual" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wcast_qual" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wcast-qual"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wdeprecated" >&5
+$as_echo_n "checking whether $CC handles -Wdeprecated... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wdeprecated+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wdeprecated"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wdeprecated=yes
+else
+ gl_cv_warn_CFLAGS__Wdeprecated=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wdeprecated" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wdeprecated" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wdeprecated" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wdeprecated"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Winline" >&5
+$as_echo_n "checking whether $CC handles -Winline... " >&6; }
+if ${gl_cv_warn_CFLAGS__Winline+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Winline"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Winline=yes
+else
+ gl_cv_warn_CFLAGS__Winline=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Winline" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Winline" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Winline" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Winline"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wmain" >&5
+$as_echo_n "checking whether $CC handles -Wmain... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wmain+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wmain"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wmain=yes
+else
+ gl_cv_warn_CFLAGS__Wmain=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wmain" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wmain" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wmain" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wmain"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wmissing-declarations" >&5
+$as_echo_n "checking whether $CC handles -Wmissing-declarations... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wmissing_declarations+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wmissing-declarations"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wmissing_declarations=yes
+else
+ gl_cv_warn_CFLAGS__Wmissing_declarations=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wmissing_declarations" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wmissing_declarations" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wmissing_declarations" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wmissing-declarations"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wmissing-format-attribute" >&5
+$as_echo_n "checking whether $CC handles -Wmissing-format-attribute... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wmissing_format_attribute+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wmissing-format-attribute"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wmissing_format_attribute=yes
+else
+ gl_cv_warn_CFLAGS__Wmissing_format_attribute=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wmissing_format_attribute" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wmissing_format_attribute" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wmissing_format_attribute" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wmissing-format-attribute"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wmissing-prototypes" >&5
+$as_echo_n "checking whether $CC handles -Wmissing-prototypes... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wmissing_prototypes+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wmissing-prototypes"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wmissing_prototypes=yes
+else
+ gl_cv_warn_CFLAGS__Wmissing_prototypes=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wmissing_prototypes" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wmissing_prototypes" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wmissing_prototypes" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wmissing-prototypes"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wp64" >&5
+$as_echo_n "checking whether $CC handles -Wp64... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wp64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wp64"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wp64=yes
+else
+ gl_cv_warn_CFLAGS__Wp64=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wp64" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wp64" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wp64" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wp64"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wpointer-arith" >&5
+$as_echo_n "checking whether $CC handles -Wpointer-arith... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wpointer_arith+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wpointer-arith"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wpointer_arith=yes
+else
+ gl_cv_warn_CFLAGS__Wpointer_arith=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wpointer_arith" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wpointer_arith" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wpointer_arith" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wpointer-arith"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wreturn-type" >&5
+$as_echo_n "checking whether $CC handles -Wreturn-type... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wreturn_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wreturn-type"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wreturn_type=yes
+else
+ gl_cv_warn_CFLAGS__Wreturn_type=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wreturn_type" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wreturn_type" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wreturn_type" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wreturn-type"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wshadow" >&5
+$as_echo_n "checking whether $CC handles -Wshadow... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wshadow+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wshadow"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wshadow=yes
+else
+ gl_cv_warn_CFLAGS__Wshadow=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wshadow" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wshadow" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wshadow" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wshadow"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wstrict-prototypes" >&5
+$as_echo_n "checking whether $CC handles -Wstrict-prototypes... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wstrict_prototypes+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wstrict-prototypes"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wstrict_prototypes=yes
+else
+ gl_cv_warn_CFLAGS__Wstrict_prototypes=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wstrict_prototypes" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wstrict_prototypes" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wstrict_prototypes" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wstrict-prototypes"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wuninitialized" >&5
+$as_echo_n "checking whether $CC handles -Wuninitialized... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wuninitialized+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wuninitialized"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wuninitialized=yes
+else
+ gl_cv_warn_CFLAGS__Wuninitialized=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wuninitialized" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wuninitialized" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wuninitialized" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wuninitialized"
+fi
+
+
+if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
+fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wwrite-strings" >&5
+$as_echo_n "checking whether $CC handles -Wwrite-strings... " >&6; }
+if ${gl_cv_warn_CFLAGS__Wwrite_strings+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wwrite-strings"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Wwrite_strings=yes
+else
+ gl_cv_warn_CFLAGS__Wwrite_strings=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wwrite_strings" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Wwrite_strings" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Wwrite_strings" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Wwrite-strings"
+fi
+
+
# Check whether --enable-Werror was given.
if test "${enable_Werror+set}" = set; then :
enableval=$enable_Werror; case $enableval in
- yes) Werror_option=-Werror ;;
- no) ;;
- *) as_fn_error $? "bad value $enableval for Werror option" "$LINENO" 5 ;;
- esac
-fi
-
-
-if eval 'test "x$GCC" = "xyes" -a "$CC" != "icc"'; then
- for flag in \
- -W \
- -Wall \
- -Wbad-function-cast \
- -Wcast-align \
- -Wcast-qual \
- -Wmissing-declarations \
- -Wmissing-prototypes \
- -Wpointer-arith \
- -Wreturn-type \
- -Wstrict-prototypes \
- -Wwrite-strings \
- -Winline \
- -Wshadow \
- $Werror_option
- do
- case "$CFLAGS" in
-"$flag" | "$flag "* | *" $flag" | *" $flag "* )
- :
- ;;
-*)
- WARN_CFLAGS="$WARN_CFLAGS $flag"
- ;;
-esac
+ yes) if test x${gl_unknown_warnings_are_errors+set} = x; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5
+$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
- done
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes
+else
+ gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no
fi
-if eval 'test "x$CC" = "xicc"'; then
- for flag in \
- -Wall \
- -Wmissing-prototypes \
- -Wpointer-arith \
- -Wreturn-type \
- -Wstrict-prototypes \
- -Wwrite-strings \
- -Wshadow \
- -Wp64 \
- -Wdeprecated \
- -Wuninitialized \
- -Wmain
- do
- case "$CFLAGS" in
-"$flag" | "$flag "* | *" $flag" | *" $flag "* )
- :
- ;;
-*)
- WARN_CFLAGS="$WARN_CFLAGS $flag"
- ;;
-esac
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
- done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then :
+ gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'
+else
+ gl_unknown_warnings_are_errors=
fi
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror" >&5
+$as_echo_n "checking whether $CC handles -Werror... " >&6; }
+if ${gl_cv_warn_CFLAGS__Werror+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_save_compiler_FLAGS="$CFLAGS"
+ as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_warn_CFLAGS__Werror=yes
+else
+ gl_cv_warn_CFLAGS__Werror=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS="$gl_save_compiler_FLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror" >&5
+$as_echo "$gl_cv_warn_CFLAGS__Werror" >&6; }
+if test "x$gl_cv_warn_CFLAGS__Werror" = xyes; then :
+ as_fn_append WARN_CFLAGS " -Werror"
+fi
+
+ ;;
+ no) ;;
+ *) as_fn_error $? "bad value $enableval for Werror option" "$LINENO" 5 ;;
+ esac
+fi
+
+
+
if test "x${CC_FOR_BUILD+set}" != "xset" ; then
if test "x$cross_compiling" = "xyes" ; then
@@ -13953,52 +15484,41 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__" >&5
-$as_echo_n "checking for __attribute__... " >&6; }
-if ${ac_cv___attribute__+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__((unused))" >&5
+$as_echo_n "checking for __attribute__((unused))... " >&6; }
+if ${pam_cv_attribute_unused+:} false; then :
$as_echo_n "(cached) " >&6
else
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
-#include <stdlib.h>
-static void foo (void) __attribute__ ((unused));
-
-static void
-foo (void)
-{
- exit(1);
-}
-
+int fun(int i __attribute__((unused)));
int
main ()
{
-
- exit (0);
-
+return fun(0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv___attribute__=yes
+ pam_cv_attribute_unused=yes
else
- ac_cv___attribute__=no
+ pam_cv_attribute_unused=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-
-if test "$ac_cv___attribute__" = "yes"; then
-
-$as_echo "#define UNUSED __attribute__ ((unused))" >>confdefs.h
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pam_cv_attribute_unused" >&5
+$as_echo "$pam_cv_attribute_unused" >&6; }
+ if test "$pam_cv_attribute_unused" = yes; then :
+ unused='__attribute__((unused))'
else
- $as_echo "#define UNUSED /**/" >>confdefs.h
-
+ unused=
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv___attribute__" >&5
-$as_echo "$ac_cv___attribute__" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define UNUSED $unused
+_ACEOF
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for .symver assembler directive" >&5
@@ -14078,43 +15598,72 @@ fi
# Check whether --enable-pie was given.
if test "${enable_pie+set}" = set; then :
- enableval=$enable_pie; USE_PIE=$enableval
+ enableval=$enable_pie;
else
- USE_PIE=yes
+ enable_pie=check
fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fpie" >&5
-$as_echo_n "checking for -fpie... " >&6; }
-if ${libc_cv_fpie+:} false; then :
+case "$enable_pie" in
+ no) ;;
+ yes|check)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fpie/-pie support" >&5
+$as_echo_n "checking for -fpie/-pie support... " >&6; }
+if ${pam_cv_pie+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat > conftest.c <<EOF
-int foo;
-main () { return 0;}
-EOF
- if test "$USE_PIE" = "yes" -a "$CC" != "icc" &&
- { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fpie
- -o conftest conftest.c 1>&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }
- then
- libc_cv_fpie=yes
- PIE_CFLAGS="-fpie"
- PIE_LDFLAGS="-pie"
- else
- libc_cv_fpie=no
- PIE_CFLAGS=""
- PIE_LDFLAGS=""
- fi
- rm -f conftest*
+ saved_CFLAGS="$CFLAGS"
+ saved_LDFLAGS="$LDFLAGS"
+ CFLAGS="$CFLAGS -fpie"
+ LDFLAGS="$LDFLAGS -pie"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ pam_cv_pie=yes
+else
+ pam_cv_pie=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$saved_LDFLAGS"
+ CFLAGS="$saved_CFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pam_cv_pie" >&5
+$as_echo "$pam_cv_pie" >&6; }
+ if test "$pam_cv_pie" = yes; then :
+ enable_pie=yes
+else
+ if test "$enable_pie" = yes; then :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "requested -fpie/-pie support not found
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ enable_pie=no
+fi
+fi
+ ;;
+ *) as_fn_error $? "bad value $enable_pie for --enable-pie option" "$LINENO" 5 ;;
+esac
+
+if test "$enable_pie" = yes; then :
+ PIE_CFLAGS="-fpie"
+ PIE_LDFLAGS="-pie"
+else
+ PIE_CFLAGS=
+ PIE_LDFLAGS=
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_fpie" >&5
-$as_echo "$libc_cv_fpie" >&6; }
+EXE_CFLAGS="$PIE_CFLAGS"
+EXE_LDFLAGS="$PIE_LDFLAGS $ZNOW_LDFLAGS"
@@ -14229,6 +15778,7 @@ else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -14310,21 +15860,24 @@ $as_echo "yes" >&6; }
$as_echo "no" >&6; }
fi
if test "$LIBPRELUDE_CONFIG" = "no" ; then
- echo "*** The libprelude-config script installed by LIBPRELUDE could not be found"
- echo "*** If LIBPRELUDE was installed in PREFIX, make sure PREFIX/bin is in"
- echo "*** your path, or set the LIBPRELUDE_CONFIG environment variable to the"
- echo "*** full path to libprelude-config."
+ if test x$libprelude_config_prefix != x ; then
+ echo "*** The libprelude-config script installed by LIBPRELUDE could not be found"
+ echo "*** If LIBPRELUDE was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the LIBPRELUDE_CONFIG environment variable to the"
+ echo "*** full path to libprelude-config."
+ fi
else
if test -f conf.libpreludetest ; then
:
else
echo "*** Could not run libprelude test program, checking why..."
CFLAGS="$CFLAGS $LIBPRELUDE_CFLAGS"
- LDFLAGS="$LDFLAGS $LIBPRELUDE_LDFLAGS"
+ LDFLAGS="$LDFLAGS $LIBPRELUDE_LDFLAGS"
LIBS="$LIBS $LIBPRELUDE_LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -14358,7 +15911,7 @@ fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
CFLAGS="$ac_save_CFLAGS"
- LDFLAGS="$ac_save_LDFLAGS"
+ LDFLAGS="$ac_save_LDFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
@@ -14643,81 +16196,6 @@ See \`config.log' for more details" "$LINENO" 5; } ;;
esac
-# Check whether --enable-cracklib was given.
-if test "${enable_cracklib+set}" = set; then :
- enableval=$enable_cracklib;
-else
- enable_cracklib=no
-fi
-
-LIBCRACK=""
-case "$enable_cracklib" in
- no) ;;
- yes|check)
- for ac_header in crack.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "crack.h" "ac_cv_header_crack_h" "$ac_includes_default"
-if test "x$ac_cv_header_crack_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_CRACK_H 1
-_ACEOF
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FascistCheck in -lcrack" >&5
-$as_echo_n "checking for FascistCheck in -lcrack... " >&6; }
-if ${ac_cv_lib_crack_FascistCheck+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcrack $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char FascistCheck ();
-int
-main ()
-{
-return FascistCheck ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_crack_FascistCheck=yes
-else
- ac_cv_lib_crack_FascistCheck=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crack_FascistCheck" >&5
-$as_echo "$ac_cv_lib_crack_FascistCheck" >&6; }
-if test "x$ac_cv_lib_crack_FascistCheck" = xyes; then :
- LIBCRACK="-lcrack"
-fi
-
-fi
-
-done
-
- if test -z "$LIBCRACK"; then
- if test "$enable_cracklib" = yes; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to find cracklib
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- fi
- ;;
- *) as_fn_error $? "bad value $enable_cracklib for --enable-cracklib option" "$LINENO" 5 ;;
-esac
-
-
# Check whether --enable-audit was given.
if test "${enable_audit+set}" = set; then :
enableval=$enable_audit; WITH_LIBAUDIT=$enableval
@@ -14782,7 +16260,7 @@ fi
fi
- if test -n "$LIBAUDIT" -a "$ac_cv_header_libaudit_h" != "no" ; then
+ if test -n "$LIBAUDIT" && test "$ac_cv_header_libaudit_h" != "no" ; then
$as_echo "#define HAVE_LIBAUDIT 1" >>confdefs.h
@@ -14808,27 +16286,318 @@ else
fi
-for ac_header in xcrypt.h crypt.h
+for ac_header in crypt.h
do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ ac_fn_c_check_header_mongrel "$LINENO" "crypt.h" "ac_cv_header_crypt_h" "$ac_includes_default"
+if test "x$ac_cv_header_crypt_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_CRYPT_H 1
_ACEOF
fi
done
-if test "x$ac_cv_header_xcrypt_h" = "xyes"; then :
- crypt_libs="xcrypt crypt"
+
+BACKUP_LIBS=$LIBS
+LIBCRYPT=""
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- crypt_libs="crypt"
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
-BACKUP_LIBS=$LIBS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
+fi
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcrypt" >&5
+$as_echo_n "checking for libcrypt... " >&6; }
+
+if test -n "$CRYPT_CFLAGS"; then
+ pkg_cv_CRYPT_CFLAGS="$CRYPT_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcrypt\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libcrypt") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_CRYPT_CFLAGS=`$PKG_CONFIG --cflags "libcrypt" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$CRYPT_LIBS"; then
+ pkg_cv_CRYPT_LIBS="$CRYPT_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcrypt\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libcrypt") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_CRYPT_LIBS=`$PKG_CONFIG --libs "libcrypt" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ CRYPT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libcrypt" 2>&1`
+ else
+ CRYPT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libcrypt" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$CRYPT_PKG_ERRORS" >&5
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_gensalt_rn" >&5
+$as_echo_n "checking for library containing crypt_gensalt_rn... " >&6; }
+if ${ac_cv_search_crypt_gensalt_rn+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char crypt_gensalt_rn ();
+int
+main ()
+{
+return crypt_gensalt_rn ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' crypt; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_crypt_gensalt_rn=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_crypt_gensalt_rn+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_crypt_gensalt_rn+:} false; then :
+
+else
+ ac_cv_search_crypt_gensalt_rn=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_gensalt_rn" >&5
+$as_echo "$ac_cv_search_crypt_gensalt_rn" >&6; }
+ac_res=$ac_cv_search_crypt_gensalt_rn
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+ case "$ac_cv_search_crypt_gensalt_rn" in
+ -l*) LIBCRYPT="$ac_cv_search_crypt_gensalt_rn" ;;
+ no) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5
+$as_echo_n "checking for library containing crypt_r... " >&6; }
+if ${ac_cv_search_crypt_r+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char crypt_r ();
+int
+main ()
+{
+return crypt_r ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' crypt; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_crypt_r=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_crypt_r+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_crypt_r+:} false; then :
+
+else
+ ac_cv_search_crypt_r=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5
+$as_echo "$ac_cv_search_crypt_r" >&6; }
+ac_res=$ac_cv_search_crypt_r
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+ case "$ac_cv_search_crypt_r" in
+ -l*) LIBCRYPT="$ac_cv_search_crypt_r" ;;
+ no ) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5
$as_echo_n "checking for library containing crypt... " >&6; }
if ${ac_cv_search_crypt+:} false; then :
$as_echo_n "(cached) " >&6
@@ -14852,7 +16621,7 @@ return crypt ();
return 0;
}
_ACEOF
-for ac_lib in '' $crypt_libs; do
+for ac_lib in '' crypt; do
if test -z "$ac_lib"; then
ac_res="none required"
else
@@ -14881,30 +16650,222 @@ $as_echo "$ac_cv_search_crypt" >&6; }
ac_res=$ac_cv_search_crypt
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
- LIBCRYPT="${ac_cv_search_crypt}"
+
+fi
+
+ case "$ac_cv_search_crypt" in
+ -l*) LIBCRYPT="$ac_cv_search_crypt" ;;
+ esac ;;
+ esac ;;
+ esac
+
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_gensalt_rn" >&5
+$as_echo_n "checking for library containing crypt_gensalt_rn... " >&6; }
+if ${ac_cv_search_crypt_gensalt_rn+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- LIBCRYPT=""
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char crypt_gensalt_rn ();
+int
+main ()
+{
+return crypt_gensalt_rn ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' crypt; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_crypt_gensalt_rn=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_crypt_gensalt_rn+:} false; then :
+ break
fi
+done
+if ${ac_cv_search_crypt_gensalt_rn+:} false; then :
-for ac_func in crypt_r crypt_gensalt_r
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+else
+ ac_cv_search_crypt_gensalt_rn=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_gensalt_rn" >&5
+$as_echo "$ac_cv_search_crypt_gensalt_rn" >&6; }
+ac_res=$ac_cv_search_crypt_gensalt_rn
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+ case "$ac_cv_search_crypt_gensalt_rn" in
+ -l*) LIBCRYPT="$ac_cv_search_crypt_gensalt_rn" ;;
+ no) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5
+$as_echo_n "checking for library containing crypt_r... " >&6; }
+if ${ac_cv_search_crypt_r+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char crypt_r ();
+int
+main ()
+{
+return crypt_r ();
+ ;
+ return 0;
+}
_ACEOF
+for ac_lib in '' crypt; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_crypt_r=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_crypt_r+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_crypt_r+:} false; then :
+
+else
+ ac_cv_search_crypt_r=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5
+$as_echo "$ac_cv_search_crypt_r" >&6; }
+ac_res=$ac_cv_search_crypt_r
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+ case "$ac_cv_search_crypt_r" in
+ -l*) LIBCRYPT="$ac_cv_search_crypt_r" ;;
+ no ) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5
+$as_echo_n "checking for library containing crypt... " >&6; }
+if ${ac_cv_search_crypt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char crypt ();
+int
+main ()
+{
+return crypt ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' crypt; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_crypt=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_crypt+:} false; then :
+ break
fi
done
+if ${ac_cv_search_crypt+:} false; then :
-LIBS=$BACKUP_LIBS
+else
+ ac_cv_search_crypt=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt" >&5
+$as_echo "$ac_cv_search_crypt" >&6; }
+ac_res=$ac_cv_search_crypt
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+ case "$ac_cv_search_crypt" in
+ -l*) LIBCRYPT="$ac_cv_search_crypt" ;;
+ esac ;;
+ esac ;;
+ esac
-if test "$LIBCRYPT" = "-lxcrypt" -a "$ac_cv_header_xcrypt_h" = "yes" ; then
+else
+ CRYPT_CFLAGS=$pkg_cv_CRYPT_CFLAGS
+ CRYPT_LIBS=$pkg_cv_CRYPT_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
-$as_echo "#define HAVE_LIBXCRYPT 1" >>confdefs.h
+ CFLAGS="$CFLAGS $CRYPT_CFLAGS"
+ CPPFLAGS="$CPPFLAGS $CRYPT_CFLAGS"
+ LIBS="$LIBS $CRYPT_LIBS"
+ LIBCRYPT="$CRYPT_LIBS"
fi
+for ac_func in crypt_r
+do :
+ ac_fn_c_check_func "$LINENO" "crypt_r" "ac_cv_func_crypt_r"
+if test "x$ac_cv_func_crypt_r" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_CRYPT_R 1
+_ACEOF
+
+fi
+done
+
+LIBS=$BACKUP_LIBS
+
# Check whether --with-randomdev was given.
@@ -14912,7 +16873,7 @@ if test "${with_randomdev+set}" = set; then :
withval=$with_randomdev; opt_randomdev=$withval
fi
-if test "$opt_randomdev" = yes -o -z "$opt_randomdev"; then
+if test "$opt_randomdev" = yes || test -z "$opt_randomdev"; then
opt_randomdev="/dev/urandom"
elif test "$opt_randomdev" = no; then
opt_randomdev=
@@ -14939,7 +16900,7 @@ if test "${with_db_uniquename+set}" = set; then :
fi
if test x"$WITH_DB" != xno ; then
- if test x"$WITH_DB" = xyes -o x"$WITH_DB" = xdb ; then
+ if test x"$WITH_DB" = xyes || test x"$WITH_DB" = xdb ; then
old_libs=$LIBS
LIBS="$LIBS -ldb$with_db_uniquename"
for ac_func in db_create$with_db_uniquename db_create dbm_store$with_db_uniquename dbm_store
@@ -15036,126 +16997,6 @@ if test "${enable_nis+set}" = set; then :
fi
-
-
-
-
-
-
-
-if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
-set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKG_CONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $PKG_CONFIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-if test -n "$PKG_CONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-$as_echo "$PKG_CONFIG" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_path_PKG_CONFIG"; then
- ac_pt_PKG_CONFIG=$PKG_CONFIG
- # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $ac_pt_PKG_CONFIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
-if test -n "$ac_pt_PKG_CONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
-$as_echo "$ac_pt_PKG_CONFIG" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_pt_PKG_CONFIG" = x; then
- PKG_CONFIG=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- PKG_CONFIG=$ac_pt_PKG_CONFIG
- fi
-else
- PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
-fi
-
-fi
-if test -n "$PKG_CONFIG"; then
- _pkg_min_version=0.9.0
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
-$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
- if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- PKG_CONFIG=""
- fi
-fi
if test "x$enable_nis" != "xno"; then :
old_CFLAGS=$CFLAGS
@@ -15744,6 +17585,74 @@ else
fi
+# Check whether --enable-openssl was given.
+if test "${enable_openssl+set}" = set; then :
+ enableval=$enable_openssl; OPENSSL_ENABLED=$enableval
+else
+ OPENSSL_ENABLED=no
+fi
+
+if test "$OPENSSL_ENABLED" = "yes" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_MAC_CTX_new in -lcrypto" >&5
+$as_echo_n "checking for EVP_MAC_CTX_new in -lcrypto... " >&6; }
+if ${ac_cv_lib_crypto_EVP_MAC_CTX_new+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcrypto $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char EVP_MAC_CTX_new ();
+int
+main ()
+{
+return EVP_MAC_CTX_new ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_crypto_EVP_MAC_CTX_new=yes
+else
+ ac_cv_lib_crypto_EVP_MAC_CTX_new=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_EVP_MAC_CTX_new" >&5
+$as_echo "$ac_cv_lib_crypto_EVP_MAC_CTX_new" >&6; }
+if test "x$ac_cv_lib_crypto_EVP_MAC_CTX_new" = xyes; then :
+ CRYPTO_LIBS="-lcrypto"
+ use_openssl=yes
+
+$as_echo "#define WITH_OPENSSL 1" >>confdefs.h
+
+ STRINGPARAM_HMAC="--stringparam profile.condition 'openssl_hmac'"
+else
+ CRYPTO_LIBS=""
+ STRINGPARAM_HMAC="--stringparam profile.condition 'no_openssl_hmac'"
+fi
+
+fi
+
+
+ if test "x$use_openssl" = "xyes"; then
+ COND_USE_OPENSSL_TRUE=
+ COND_USE_OPENSSL_FALSE='#'
+else
+ COND_USE_OPENSSL_TRUE='#'
+ COND_USE_OPENSSL_FALSE=
+fi
+
+
ac_header_dirent=no
for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
@@ -16055,7 +17964,7 @@ $as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
fi
-for ac_header in fcntl.h limits.h malloc.h sys/file.h sys/ioctl.h sys/time.h syslog.h net/if.h termio.h unistd.h sys/fsuid.h inittypes.h sys/vfs.h linux/magic.h
+for ac_header in fcntl.h limits.h malloc.h sys/file.h sys/ioctl.h sys/time.h syslog.h net/if.h termio.h unistd.h sys/fsuid.h inittypes.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -17154,7 +19063,7 @@ fi
- if test x$enable_docu != xno -a x$enable_doc != xno; then
+ if test x$enable_docu != xno && test x$enable_doc != xno; then
ENABLE_REGENERATE_MAN_TRUE=
ENABLE_REGENERATE_MAN_FALSE='#'
else
@@ -19265,9 +21174,8 @@ if test "${with_uidmin+set}" = set; then :
withval=$with_uidmin; opt_uidmin=$withval
fi
-if test x"$opt_uidmin" == x; then
- opt_uidmin=1000
-fi
+test -n "$opt_uidmin" ||
+ opt_uidmin=1000
cat >>confdefs.h <<_ACEOF
#define PAM_USERTYPE_UIDMIN $opt_uidmin
@@ -19280,9 +21188,8 @@ if test "${with_sysuidmin+set}" = set; then :
withval=$with_sysuidmin; opt_sysuidmin=$withval
fi
-if test x"$opt_sysuidmin" == x; then
- opt_sysuidmin=101
-fi
+test -n "$opt_sysuidmin" ||
+ opt_sysuidmin=101
cat >>confdefs.h <<_ACEOF
#define PAM_USERTYPE_SYSUIDMIN $opt_sysuidmin
@@ -19290,52 +21197,67 @@ _ACEOF
-# Check whether --with-kerneloverflowuid was given.
-if test "${with_kerneloverflowuid+set}" = set; then :
- withval=$with_kerneloverflowuid; opt_kerneloverflowuid=$withval
+# Check whether --with-kernel-overflow-uid was given.
+if test "${with_kernel_overflow_uid+set}" = set; then :
+ withval=$with_kernel_overflow_uid; opt_kerneloverflowuid=$withval
fi
-if test x"$opt_kerneloverflowuid" == x; then
- opt_kerneloverflowuid=65534
-fi
+test -n "$opt_kerneloverflowuid" ||
+ opt_kerneloverflowuid=65534
cat >>confdefs.h <<_ACEOF
#define PAM_USERTYPE_OVERFLOW_UID $opt_kerneloverflowuid
_ACEOF
-# Check whether --enable-tally was given.
-if test "${enable_tally+set}" = set; then :
- enableval=$enable_tally;
+
+# Check whether --with-systemdunitdir was given.
+if test "${with_systemdunitdir+set}" = set; then :
+ withval=$with_systemdunitdir;
else
- enable_tally=no
+
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"systemd\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "systemd") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ with_systemdunitdir=$($PKG_CONFIG --variable=systemdunitdir systemd)
+else
+ with_systemdunitdir='${prefix}/lib/systemd/system'
fi
-case "$enable_tally" in
- yes|no) ;;
- *) as_fn_error $? "bad value $enable_tally for --enable-tally option" "$LINENO" 5 ;;
-esac
+fi
+
+systemdunitdir=$with_systemdunitdir
+
-# Check whether --enable-tally2 was given.
-if test "${enable_tally2+set}" = set; then :
- enableval=$enable_tally2;
+# Check whether --enable-unix was given.
+if test "${enable_unix+set}" = set; then :
+ enableval=$enable_unix;
else
- enable_tally2=no
+ enable_unix=yes
fi
-case "$enable_tally2" in
+case "$enable_unix" in
yes|no) ;;
- *) as_fn_error $? "bad value $enable_tally2 for --enable-tally2 option" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value $enable_unix for --enable-unix option" "$LINENO" 5 ;;
esac
- if test -n "$LIBCRACK"; then
- COND_BUILD_PAM_CRACKLIB_TRUE=
- COND_BUILD_PAM_CRACKLIB_FALSE='#'
+
+# Check whether --with-misc-conv-bufsize was given.
+if test "${with_misc_conv_bufsize+set}" = set; then :
+ withval=$with_misc_conv_bufsize;
else
- COND_BUILD_PAM_CRACKLIB_TRUE='#'
- COND_BUILD_PAM_CRACKLIB_FALSE=
+ with_misc_conv_bufsize=4096
fi
+
+cat >>confdefs.h <<_ACEOF
+#define PAM_MISC_CONV_BUFSIZE $with_misc_conv_bufsize
+_ACEOF
+
+
if test "$have_key_syscalls" = 1; then
COND_BUILD_PAM_KEYINIT_TRUE=
COND_BUILD_PAM_KEYINIT_FALSE='#'
@@ -19360,7 +21282,7 @@ else
COND_BUILD_PAM_NAMESPACE_FALSE=
fi
- if test "$ac_cv_func_ruserok_af" = yes -o "$ac_cv_func_ruserok" = yes; then
+ if test "$ac_cv_func_ruserok_af" = yes || test "$ac_cv_func_ruserok" = yes; then
COND_BUILD_PAM_RHOSTS_TRUE=
COND_BUILD_PAM_RHOSTS_FALSE='#'
else
@@ -19392,22 +21314,6 @@ else
COND_BUILD_PAM_SETQUOTA_FALSE=
fi
- if test "$enable_tally" = yes; then
- COND_BUILD_PAM_TALLY_TRUE=
- COND_BUILD_PAM_TALLY_FALSE='#'
-else
- COND_BUILD_PAM_TALLY_TRUE='#'
- COND_BUILD_PAM_TALLY_FALSE=
-fi
-
- if test "$enable_tally2" = yes; then
- COND_BUILD_PAM_TALLY2_TRUE=
- COND_BUILD_PAM_TALLY2_FALSE='#'
-else
- COND_BUILD_PAM_TALLY2_TRUE='#'
- COND_BUILD_PAM_TALLY2_FALSE=
-fi
-
if test "$HAVE_AUDIT_TTY_STATUS" = yes; then
COND_BUILD_PAM_TTY_AUDIT_TRUE=
COND_BUILD_PAM_TTY_AUDIT_FALSE='#'
@@ -19416,6 +21322,14 @@ else
COND_BUILD_PAM_TTY_AUDIT_FALSE=
fi
+ if test "$enable_unix" = yes; then
+ COND_BUILD_PAM_UNIX_TRUE=
+ COND_BUILD_PAM_UNIX_FALSE='#'
+else
+ COND_BUILD_PAM_UNIX_TRUE='#'
+ COND_BUILD_PAM_UNIX_FALSE=
+fi
+
if test -n "$LIBDB"; then
COND_BUILD_PAM_USERDB_TRUE=
COND_BUILD_PAM_USERDB_FALSE='#'
@@ -19425,7 +21339,7 @@ else
fi
-ac_config_files="$ac_config_files Makefile libpam/Makefile libpamc/Makefile libpamc/test/Makefile libpam_misc/Makefile conf/Makefile conf/pam_conv1/Makefile po/Makefile.in Make.xml.rules modules/Makefile modules/pam_access/Makefile modules/pam_cracklib/Makefile modules/pam_debug/Makefile modules/pam_deny/Makefile modules/pam_echo/Makefile modules/pam_env/Makefile modules/pam_faildelay/Makefile modules/pam_faillock/Makefile modules/pam_filter/Makefile modules/pam_filter/upperLOWER/Makefile modules/pam_ftp/Makefile modules/pam_group/Makefile modules/pam_issue/Makefile modules/pam_keyinit/Makefile modules/pam_lastlog/Makefile modules/pam_limits/Makefile modules/pam_listfile/Makefile modules/pam_localuser/Makefile modules/pam_loginuid/Makefile modules/pam_mail/Makefile modules/pam_mkhomedir/Makefile modules/pam_motd/Makefile modules/pam_namespace/Makefile modules/pam_namespace/pam_namespace_helper modules/pam_namespace/pam_namespace.service modules/pam_nologin/Makefile modules/pam_permit/Makefile modules/pam_pwhistory/Makefile modules/pam_rhosts/Makefile modules/pam_rootok/Makefile modules/pam_exec/Makefile modules/pam_securetty/Makefile modules/pam_selinux/Makefile modules/pam_sepermit/Makefile modules/pam_setquota/Makefile modules/pam_shells/Makefile modules/pam_stress/Makefile modules/pam_succeed_if/Makefile modules/pam_tally/Makefile modules/pam_tally2/Makefile modules/pam_time/Makefile modules/pam_timestamp/Makefile modules/pam_tty_audit/Makefile modules/pam_umask/Makefile modules/pam_unix/Makefile modules/pam_userdb/Makefile modules/pam_usertype/Makefile modules/pam_warn/Makefile modules/pam_wheel/Makefile modules/pam_xauth/Makefile doc/Makefile doc/specs/Makefile doc/man/Makefile doc/sag/Makefile doc/adg/Makefile doc/mwg/Makefile examples/Makefile tests/Makefile xtests/Makefile"
+ac_config_files="$ac_config_files Makefile libpam/Makefile libpamc/Makefile libpamc/test/Makefile libpam_misc/Makefile conf/Makefile conf/pam_conv1/Makefile libpam/pam.pc libpam_misc/pam_misc.pc libpamc/pamc.pc po/Makefile.in Make.xml.rules modules/Makefile modules/pam_access/Makefile modules/pam_debug/Makefile modules/pam_deny/Makefile modules/pam_echo/Makefile modules/pam_env/Makefile modules/pam_faildelay/Makefile modules/pam_faillock/Makefile modules/pam_filter/Makefile modules/pam_filter/upperLOWER/Makefile modules/pam_ftp/Makefile modules/pam_group/Makefile modules/pam_issue/Makefile modules/pam_keyinit/Makefile modules/pam_lastlog/Makefile modules/pam_limits/Makefile modules/pam_listfile/Makefile modules/pam_localuser/Makefile modules/pam_loginuid/Makefile modules/pam_mail/Makefile modules/pam_mkhomedir/Makefile modules/pam_motd/Makefile modules/pam_namespace/Makefile modules/pam_namespace/pam_namespace_helper modules/pam_namespace/pam_namespace.service modules/pam_nologin/Makefile modules/pam_permit/Makefile modules/pam_pwhistory/Makefile modules/pam_rhosts/Makefile modules/pam_rootok/Makefile modules/pam_exec/Makefile modules/pam_securetty/Makefile modules/pam_selinux/Makefile modules/pam_sepermit/Makefile modules/pam_setquota/Makefile modules/pam_shells/Makefile modules/pam_stress/Makefile modules/pam_succeed_if/Makefile modules/pam_time/Makefile modules/pam_timestamp/Makefile modules/pam_tty_audit/Makefile modules/pam_umask/Makefile modules/pam_unix/Makefile modules/pam_userdb/Makefile modules/pam_usertype/Makefile modules/pam_warn/Makefile modules/pam_wheel/Makefile modules/pam_xauth/Makefile doc/Makefile doc/specs/Makefile doc/man/Makefile doc/sag/Makefile doc/adg/Makefile doc/mwg/Makefile examples/Makefile tests/Makefile xtests/Makefile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -19572,6 +21486,10 @@ if test -z "${HAVE_DOC_TRUE}" && test -z "${HAVE_DOC_FALSE}"; then
as_fn_error $? "conditional \"HAVE_DOC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${COND_USE_OPENSSL_TRUE}" && test -z "${COND_USE_OPENSSL_FALSE}"; then
+ as_fn_error $? "conditional \"COND_USE_OPENSSL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${ENABLE_REGENERATE_MAN_TRUE}" && test -z "${ENABLE_REGENERATE_MAN_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_REGENERATE_MAN\" was never defined.
@@ -19581,10 +21499,6 @@ if test -z "${ENABLE_GENERATE_PDF_TRUE}" && test -z "${ENABLE_GENERATE_PDF_FALSE
as_fn_error $? "conditional \"ENABLE_GENERATE_PDF\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${COND_BUILD_PAM_CRACKLIB_TRUE}" && test -z "${COND_BUILD_PAM_CRACKLIB_FALSE}"; then
- as_fn_error $? "conditional \"COND_BUILD_PAM_CRACKLIB\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${COND_BUILD_PAM_KEYINIT_TRUE}" && test -z "${COND_BUILD_PAM_KEYINIT_FALSE}"; then
as_fn_error $? "conditional \"COND_BUILD_PAM_KEYINIT\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -19613,18 +21527,14 @@ if test -z "${COND_BUILD_PAM_SETQUOTA_TRUE}" && test -z "${COND_BUILD_PAM_SETQUO
as_fn_error $? "conditional \"COND_BUILD_PAM_SETQUOTA\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${COND_BUILD_PAM_TALLY_TRUE}" && test -z "${COND_BUILD_PAM_TALLY_FALSE}"; then
- as_fn_error $? "conditional \"COND_BUILD_PAM_TALLY\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${COND_BUILD_PAM_TALLY2_TRUE}" && test -z "${COND_BUILD_PAM_TALLY2_FALSE}"; then
- as_fn_error $? "conditional \"COND_BUILD_PAM_TALLY2\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${COND_BUILD_PAM_TTY_AUDIT_TRUE}" && test -z "${COND_BUILD_PAM_TTY_AUDIT_FALSE}"; then
as_fn_error $? "conditional \"COND_BUILD_PAM_TTY_AUDIT\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${COND_BUILD_PAM_UNIX_TRUE}" && test -z "${COND_BUILD_PAM_UNIX_FALSE}"; then
+ as_fn_error $? "conditional \"COND_BUILD_PAM_UNIX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${COND_BUILD_PAM_USERDB_TRUE}" && test -z "${COND_BUILD_PAM_USERDB_FALSE}"; then
as_fn_error $? "conditional \"COND_BUILD_PAM_USERDB\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -20026,7 +21936,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Linux-PAM $as_me 1.4.0, which was
+This file was extended by Linux-PAM $as_me 1.5.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -20092,7 +22002,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-Linux-PAM config.status 1.4.0
+Linux-PAM config.status 1.5.2
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -20522,11 +22432,13 @@ do
"libpam_misc/Makefile") CONFIG_FILES="$CONFIG_FILES libpam_misc/Makefile" ;;
"conf/Makefile") CONFIG_FILES="$CONFIG_FILES conf/Makefile" ;;
"conf/pam_conv1/Makefile") CONFIG_FILES="$CONFIG_FILES conf/pam_conv1/Makefile" ;;
+ "libpam/pam.pc") CONFIG_FILES="$CONFIG_FILES libpam/pam.pc" ;;
+ "libpam_misc/pam_misc.pc") CONFIG_FILES="$CONFIG_FILES libpam_misc/pam_misc.pc" ;;
+ "libpamc/pamc.pc") CONFIG_FILES="$CONFIG_FILES libpamc/pamc.pc" ;;
"po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
"Make.xml.rules") CONFIG_FILES="$CONFIG_FILES Make.xml.rules" ;;
"modules/Makefile") CONFIG_FILES="$CONFIG_FILES modules/Makefile" ;;
"modules/pam_access/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_access/Makefile" ;;
- "modules/pam_cracklib/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_cracklib/Makefile" ;;
"modules/pam_debug/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_debug/Makefile" ;;
"modules/pam_deny/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_deny/Makefile" ;;
"modules/pam_echo/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_echo/Makefile" ;;
@@ -20563,8 +22475,6 @@ do
"modules/pam_shells/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_shells/Makefile" ;;
"modules/pam_stress/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_stress/Makefile" ;;
"modules/pam_succeed_if/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_succeed_if/Makefile" ;;
- "modules/pam_tally/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_tally/Makefile" ;;
- "modules/pam_tally2/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_tally2/Makefile" ;;
"modules/pam_time/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_time/Makefile" ;;
"modules/pam_timestamp/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_timestamp/Makefile" ;;
"modules/pam_tty_audit/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_tty_audit/Makefile" ;;
@@ -21257,7 +23167,9 @@ $as_echo X/"$am_mf" |
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "Something went wrong bootstrapping makefile fragments
- for automatic dependency tracking. Try re-running configure with the
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE=\"gmake\" (or whatever is
+ necessary). You can also try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).
See \`config.log' for more details" "$LINENO" 5; }
diff --git a/configure.ac b/configure.ac
index ea08a7a3..c06bc7dd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-AC_INIT([Linux-PAM], [1.4.0], , [Linux-PAM])
+AC_INIT([Linux-PAM], [1.5.2], , [Linux-PAM])
AC_CONFIG_SRCDIR([conf/pam_conv1/pam_conv_y.y])
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([-Wall -Wno-portability])
@@ -75,61 +75,12 @@ AM_PROG_CC_C_O
PAM_LD_AS_NEEDED
PAM_LD_NO_UNDEFINED
PAM_LD_O1
+PAM_LD_Z_NOW
dnl Largefile support
AC_SYS_LARGEFILE
-Werror_option=
-AC_ARG_ENABLE([Werror],
- [AS_HELP_STRING([--enable-Werror],
- [turn on -Werror compiler option])],
- [case $enableval in
- yes) Werror_option=-Werror ;;
- no) ;;
- *) AC_MSG_ERROR([bad value $enableval for Werror option]) ;;
- esac])
-
-dnl icc claims to be GCC compatible, but use other flags for warnings
-if eval 'test "x$GCC" = "xyes" -a "$CC" != "icc"'; then
- for flag in \
- -W \
- -Wall \
- -Wbad-function-cast \
- -Wcast-align \
- -Wcast-qual \
- -Wmissing-declarations \
- -Wmissing-prototypes \
- -Wpointer-arith \
- -Wreturn-type \
- -Wstrict-prototypes \
- -Wwrite-strings \
- -Winline \
- -Wshadow \
- $Werror_option
- do
- JAPHAR_GREP_CFLAGS($flag, [ WARN_CFLAGS="$WARN_CFLAGS $flag" ])
- done
-fi
-dnl icc has special warning flags
-if eval 'test "x$CC" = "xicc"'; then
- for flag in \
- -Wall \
- -Wmissing-prototypes \
- -Wpointer-arith \
- -Wreturn-type \
- -Wstrict-prototypes \
- -Wwrite-strings \
- -Wshadow \
- -Wp64 \
- -Wdeprecated \
- -Wuninitialized \
- -Wmain
- do
- JAPHAR_GREP_CFLAGS($flag, [ WARN_CFLAGS="$WARN_CFLAGS $flag" ])
- done
-fi
-
-AC_SUBST(WARN_CFLAGS)
+pam_WARN_LANG_FLAGS
if test "x${CC_FOR_BUILD+set}" != "xset" ; then
if test "x$cross_compiling" = "xyes" ; then
@@ -169,7 +120,7 @@ if test "x${BUILD_LDFLAGS+set}" != "xset" ; then
fi
AC_SUBST(BUILD_LDFLAGS)
-AC_C___ATTRIBUTE__
+PAM_ATTRIBUTE_UNUSED
dnl
dnl Check if --version-script is supported by ld
@@ -224,36 +175,44 @@ rm -f conftest*])
AM_CONDITIONAL([HAVE_VERSIONING],
[test "$libc_cv_ld_version_script_option" = "yes"])
-dnl
-dnl check for -fPIE/-pie support
-dnl
-dnl icc handles -fpie as -fp without error, so blacklist icc
-dnl
-AC_ARG_ENABLE(pie,AS_HELP_STRING([--disable-pie],
- [disable position-independent executables (PIE)]),
- USE_PIE=$enableval, USE_PIE=yes)
-
-AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
- cat > conftest.c <<EOF
-int foo;
-main () { return 0;}
-EOF
- if test "$USE_PIE" = "yes" -a "$CC" != "icc" &&
- AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fpie
- -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
- then
- libc_cv_fpie=yes
- PIE_CFLAGS="-fpie"
- PIE_LDFLAGS="-pie"
- else
- libc_cv_fpie=no
- PIE_CFLAGS=""
- PIE_LDFLAGS=""
- fi
- rm -f conftest*])
-AC_SUBST(libc_cv_fpie)
-AC_SUBST(PIE_CFLAGS)
-AC_SUBST(PIE_LDFLAGS)
+AC_ARG_ENABLE([pie],
+ [AS_HELP_STRING([--disable-pie],
+ [disable position-independent executables (PIE)])],
+ [], [enable_pie=check])
+case "$enable_pie" in
+ no) ;;
+ yes|check)
+ dnl Check for -fpie/-pie support
+ AC_CACHE_CHECK([for -fpie/-pie support],
+ [pam_cv_pie],
+ [saved_CFLAGS="$CFLAGS"
+ saved_LDFLAGS="$LDFLAGS"
+ CFLAGS="$CFLAGS -fpie"
+ LDFLAGS="$LDFLAGS -pie"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM(,)],
+ [pam_cv_pie=yes],
+ [pam_cv_pie=no])
+ LDFLAGS="$saved_LDFLAGS"
+ CFLAGS="$saved_CFLAGS"])
+ AS_IF([test "$pam_cv_pie" = yes],
+ [enable_pie=yes],
+ [AS_IF([test "$enable_pie" = yes],
+ [AC_MSG_FAILURE([requested -fpie/-pie support not found])],
+ [enable_pie=no])])
+ ;;
+ *) AC_MSG_ERROR([bad value $enable_pie for --enable-pie option]) ;;
+esac
+
+AS_IF([test "$enable_pie" = yes],
+ [PIE_CFLAGS="-fpie"
+ PIE_LDFLAGS="-pie"],
+ [PIE_CFLAGS=
+ PIE_LDFLAGS=])
+
+EXE_CFLAGS="$PIE_CFLAGS"
+EXE_LDFLAGS="$PIE_LDFLAGS $ZNOW_LDFLAGS"
+AC_SUBST(EXE_CFLAGS)
+AC_SUBST(EXE_LDFLAGS)
dnl
@@ -375,28 +334,6 @@ case "$ac_cv_search_dlopen" in
esac
AC_SUBST(LIBDL)
-AC_ARG_ENABLE([cracklib],
- [AS_HELP_STRING([--enable-cracklib],
- [build deprecated pam_cracklib module])],
- [], [enable_cracklib=no])
-LIBCRACK=""
-case "$enable_cracklib" in
- no) ;;
- yes|check)
- dnl Check for cracklib
- AC_CHECK_HEADERS([crack.h],
- [AC_CHECK_LIB([crack], [FascistCheck],
- [LIBCRACK="-lcrack"])])
- if test -z "$LIBCRACK"; then
- if test "$enable_cracklib" = yes; then
- AC_MSG_FAILURE([failed to find cracklib])
- fi
- fi
- ;;
- *) AC_MSG_ERROR([bad value $enable_cracklib for --enable-cracklib option]) ;;
-esac
-AC_SUBST(LIBCRACK)
-
dnl Look for Linux Auditing library - see documentation
AC_ARG_ENABLE([audit],
AS_HELP_STRING([--disable-audit],[do not enable audit support]),
@@ -409,7 +346,7 @@ if test x"$WITH_LIBAUDIT" != xno ; then
[HAVE_AUDIT_TTY_STATUS=""],
[#include <libaudit.h>])]
)
- if test -n "$LIBAUDIT" -a "$ac_cv_header_libaudit_h" != "no" ; then
+ if test -n "$LIBAUDIT" && test "$ac_cv_header_libaudit_h" != "no" ; then
AC_DEFINE([HAVE_LIBAUDIT], 1, [Define to 1 if audit support should be compiled in.])
fi
if test -n "$HAVE_AUDIT_TTY_STATUS" ; then
@@ -422,22 +359,35 @@ else
fi
AC_SUBST(LIBAUDIT)
-AC_CHECK_HEADERS(xcrypt.h crypt.h)
-AS_IF([test "x$ac_cv_header_xcrypt_h" = "xyes"],
- [crypt_libs="xcrypt crypt"],
- [crypt_libs="crypt"])
+AC_CHECK_HEADERS(crypt.h)
BACKUP_LIBS=$LIBS
-AC_SEARCH_LIBS([crypt],[$crypt_libs], LIBCRYPT="${ac_cv_search_crypt}", LIBCRYPT="")
-AC_CHECK_FUNCS(crypt_r crypt_gensalt_r)
+LIBCRYPT=""
+PKG_CHECK_MODULES([CRYPT], [libcrypt], [
+ CFLAGS="$CFLAGS $CRYPT_CFLAGS"
+ CPPFLAGS="$CPPFLAGS $CRYPT_CFLAGS"
+ LIBS="$LIBS $CRYPT_LIBS"
+ LIBCRYPT="$CRYPT_LIBS"
+], [
+ AC_SEARCH_LIBS([crypt_gensalt_rn],[crypt])
+ case "$ac_cv_search_crypt_gensalt_rn" in
+ -l*) LIBCRYPT="$ac_cv_search_crypt_gensalt_rn" ;;
+ no) AC_SEARCH_LIBS([crypt_r],[crypt])
+ case "$ac_cv_search_crypt_r" in
+ -l*) LIBCRYPT="$ac_cv_search_crypt_r" ;;
+ no ) AC_SEARCH_LIBS([crypt],[crypt])
+ case "$ac_cv_search_crypt" in
+ -l*) LIBCRYPT="$ac_cv_search_crypt" ;;
+ esac ;;
+ esac ;;
+ esac
+])
+AC_CHECK_FUNCS([crypt_r])
LIBS=$BACKUP_LIBS
AC_SUBST(LIBCRYPT)
-if test "$LIBCRYPT" = "-lxcrypt" -a "$ac_cv_header_xcrypt_h" = "yes" ; then
- AC_DEFINE([HAVE_LIBXCRYPT], 1, [Define to 1 if xcrypt support should be compiled in.])
-fi
AC_ARG_WITH([randomdev], AS_HELP_STRING([--with-randomdev=(<path>|yes|no)],[use specified random device instead of /dev/urandom or 'no' to disable]), opt_randomdev=$withval)
-if test "$opt_randomdev" = yes -o -z "$opt_randomdev"; then
+if test "$opt_randomdev" = yes || test -z "$opt_randomdev"; then
opt_randomdev="/dev/urandom"
elif test "$opt_randomdev" = no; then
opt_randomdev=
@@ -454,7 +404,7 @@ AC_ARG_ENABLE([db],
AC_ARG_WITH([db-uniquename],
AS_HELP_STRING([--with-db-uniquename=extension],[Unique name for db libraries and functions.]))
if test x"$WITH_DB" != xno ; then
- if test x"$WITH_DB" = xyes -o x"$WITH_DB" = xdb ; then
+ if test x"$WITH_DB" = xyes || test x"$WITH_DB" = xdb ; then
old_libs=$LIBS
LIBS="$LIBS -ldb$with_db_uniquename"
AC_CHECK_FUNCS([db_create$with_db_uniquename db_create dbm_store$with_db_uniquename dbm_store],
@@ -563,11 +513,27 @@ else
fi
AC_SUBST([STRINGPARAM_VENDORDIR])
+AC_ARG_ENABLE([openssl],
+ AS_HELP_STRING([--enable-openssl],[use OpenSSL crypto libraries]),
+ [OPENSSL_ENABLED=$enableval], OPENSSL_ENABLED=no)
+if test "$OPENSSL_ENABLED" = "yes" ; then
+ AC_CHECK_LIB([crypto], [EVP_MAC_CTX_new],
+ [CRYPTO_LIBS="-lcrypto"
+ use_openssl=yes
+ AC_DEFINE([WITH_OPENSSL], 1, [OpenSSL provides crypto algorithm for hmac])
+ STRINGPARAM_HMAC="--stringparam profile.condition 'openssl_hmac'"],
+ [CRYPTO_LIBS=""
+ STRINGPARAM_HMAC="--stringparam profile.condition 'no_openssl_hmac'"])
+fi
+AC_SUBST([CRYPTO_LIBS])
+AC_SUBST([STRINGPARAM_HMAC])
+AM_CONDITIONAL([COND_USE_OPENSSL], [test "x$use_openssl" = "xyes"])
+
dnl Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/file.h sys/ioctl.h sys/time.h syslog.h net/if.h termio.h unistd.h sys/fsuid.h inittypes.h sys/vfs.h linux/magic.h)
+AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/file.h sys/ioctl.h sys/time.h syslog.h net/if.h termio.h unistd.h sys/fsuid.h inittypes.h)
dnl For module/pam_lastlog
AC_CHECK_HEADERS(lastlog.h utmp.h utmpx.h)
@@ -631,7 +597,7 @@ fi
AC_PATH_PROG([FO2PDF], [fop])
-AM_CONDITIONAL(ENABLE_REGENERATE_MAN, test x$enable_docu != xno -a x$enable_doc != xno)
+AM_CONDITIONAL(ENABLE_REGENERATE_MAN, test x$enable_docu != xno && test x$enable_doc != xno)
AM_CONDITIONAL(ENABLE_GENERATE_PDF, test -n "$FO2PDF")
@@ -658,61 +624,65 @@ dnl
dnl Get values for default uid ranges in login.defs used in pam_usertype
dnl
AC_ARG_WITH([uidmin], AS_HELP_STRING([--with-uidmin=<number>],[default value for regular user min uid (1000)]), opt_uidmin=$withval)
-if test x"$opt_uidmin" == x; then
- opt_uidmin=1000
-fi
+test -n "$opt_uidmin" ||
+ opt_uidmin=1000
AC_DEFINE_UNQUOTED(PAM_USERTYPE_UIDMIN, $opt_uidmin, [Minimum regular user uid.])
AC_ARG_WITH([sysuidmin], AS_HELP_STRING([--with-sysuidmin=<number>],[default value for system user min uid (101)]), opt_sysuidmin=$withval)
-if test x"$opt_sysuidmin" == x; then
- opt_sysuidmin=101
-fi
+test -n "$opt_sysuidmin" ||
+ opt_sysuidmin=101
AC_DEFINE_UNQUOTED(PAM_USERTYPE_SYSUIDMIN, $opt_sysuidmin, [Minimum system user uid.])
-AC_ARG_WITH([kerneloverflowuid], AS_HELP_STRING([--with-kernel-overflow-uid=<number>],[kernel overflow uid, default (uint16_t)-2=65534]), opt_kerneloverflowuid=$withval)
-if test x"$opt_kerneloverflowuid" == x; then
- opt_kerneloverflowuid=65534
-fi
+AC_ARG_WITH([kernel-overflow-uid], AS_HELP_STRING([--with-kernel-overflow-uid=<number>],[kernel overflow uid, default (uint16_t)-2=65534]), opt_kerneloverflowuid=$withval)
+test -n "$opt_kerneloverflowuid" ||
+ opt_kerneloverflowuid=65534
AC_DEFINE_UNQUOTED(PAM_USERTYPE_OVERFLOW_UID, $opt_kerneloverflowuid, [Kernel overflow uid.])
-AC_ARG_ENABLE([tally],
- [AS_HELP_STRING([--enable-tally],
- [build deprecated pam_tally module])],
- [], [enable_tally=no])
-case "$enable_tally" in
+AC_ARG_WITH([systemdunitdir],
+AS_HELP_STRING([--with-systemdunitdir=DIR], [path to systemd service directory]),
+ [],
+ [
+ PKG_CHECK_EXISTS([systemd],
+ [with_systemdunitdir=$($PKG_CONFIG --variable=systemdunitdir systemd)],
+ [with_systemdunitdir='${prefix}/lib/systemd/system'])
+ ])
+AC_SUBST([systemdunitdir], [$with_systemdunitdir])
+
+AC_ARG_ENABLE([unix],
+ [AS_HELP_STRING([--disable-unix],
+ [do not build pam_unix module])],
+ [], [enable_unix=yes])
+case "$enable_unix" in
yes|no) ;;
- *) AC_MSG_ERROR([bad value $enable_tally for --enable-tally option]) ;;
+ *) AC_MSG_ERROR([bad value $enable_unix for --enable-unix option]) ;;
esac
-AC_ARG_ENABLE([tally2],
- [AS_HELP_STRING([--enable-tally2],
- [build deprecated pam_tally2 module])],
- [], [enable_tally2=no])
-case "$enable_tally2" in
- yes|no) ;;
- *) AC_MSG_ERROR([bad value $enable_tally2 for --enable-tally2 option]) ;;
-esac
+AC_ARG_WITH([misc-conv-bufsize],
+AS_HELP_STRING([--with-misc-conv-bufsize=<number>],
+ [Size of input buffer for libpam_misc's misc_conv() conversation function, default=4096]),
+ [],
+ [with_misc_conv_bufsize=4096])
+AC_DEFINE_UNQUOTED(PAM_MISC_CONV_BUFSIZE, $with_misc_conv_bufsize, [libpam_misc misc_conv() buffer size.])
-AM_CONDITIONAL([COND_BUILD_PAM_CRACKLIB], [test -n "$LIBCRACK"])
AM_CONDITIONAL([COND_BUILD_PAM_KEYINIT], [test "$have_key_syscalls" = 1])
AM_CONDITIONAL([COND_BUILD_PAM_LASTLOG], [test "$ac_cv_func_logwtmp" = yes])
AM_CONDITIONAL([COND_BUILD_PAM_NAMESPACE], [test "$ac_cv_func_unshare" = yes])
-AM_CONDITIONAL([COND_BUILD_PAM_RHOSTS], [test "$ac_cv_func_ruserok_af" = yes -o "$ac_cv_func_ruserok" = yes])
+AM_CONDITIONAL([COND_BUILD_PAM_RHOSTS], [test "$ac_cv_func_ruserok_af" = yes || test "$ac_cv_func_ruserok" = yes])
AM_CONDITIONAL([COND_BUILD_PAM_SELINUX], [test -n "$LIBSELINUX"])
AM_CONDITIONAL([COND_BUILD_PAM_SEPERMIT], [test -n "$LIBSELINUX"])
AM_CONDITIONAL([COND_BUILD_PAM_SETQUOTA], [test "$ac_cv_func_quotactl" = yes])
-AM_CONDITIONAL([COND_BUILD_PAM_TALLY], [test "$enable_tally" = yes])
-AM_CONDITIONAL([COND_BUILD_PAM_TALLY2], [test "$enable_tally2" = yes])
AM_CONDITIONAL([COND_BUILD_PAM_TTY_AUDIT], [test "$HAVE_AUDIT_TTY_STATUS" = yes])
+AM_CONDITIONAL([COND_BUILD_PAM_UNIX], [test "$enable_unix" = yes])
AM_CONDITIONAL([COND_BUILD_PAM_USERDB], [test -n "$LIBDB"])
dnl Files to be created from when we run configure
AC_CONFIG_FILES([Makefile libpam/Makefile libpamc/Makefile libpamc/test/Makefile \
libpam_misc/Makefile conf/Makefile conf/pam_conv1/Makefile \
+ libpam/pam.pc libpam_misc/pam_misc.pc libpamc/pamc.pc \
po/Makefile.in \
Make.xml.rules \
modules/Makefile \
- modules/pam_access/Makefile modules/pam_cracklib/Makefile \
+ modules/pam_access/Makefile \
modules/pam_debug/Makefile modules/pam_deny/Makefile \
modules/pam_echo/Makefile modules/pam_env/Makefile \
modules/pam_faildelay/Makefile modules/pam_faillock/Makefile \
@@ -731,8 +701,7 @@ AC_CONFIG_FILES([Makefile libpam/Makefile libpamc/Makefile libpamc/test/Makefile
modules/pam_securetty/Makefile modules/pam_selinux/Makefile \
modules/pam_sepermit/Makefile modules/pam_setquota/Makefile \
modules/pam_shells/Makefile modules/pam_stress/Makefile \
- modules/pam_succeed_if/Makefile modules/pam_tally/Makefile \
- modules/pam_tally2/Makefile modules/pam_time/Makefile \
+ modules/pam_succeed_if/Makefile modules/pam_time/Makefile \
modules/pam_timestamp/Makefile modules/pam_tty_audit/Makefile \
modules/pam_umask/Makefile \
modules/pam_unix/Makefile modules/pam_userdb/Makefile \
diff --git a/debian/changelog b/debian/changelog
index 641f3197..f38d567a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,38 @@
+pam (1.5.2-1) unstable; urgency=medium
+
+ * New upstream release.
+ - fixes compatibility with libpam-systemd. Closes: #1017467.
+ - fixes bashisms in configure.ac. Closes: #998361.
+ * Refresh patches.
+ * Drop patches included or obsoleted upstream:
+ - debian/patches-applied/pam_unix_fix_sgid_shadow_auth.patch
+ - debian/patches-applied/pam_unix_initialize_daysleft
+ - debian/patches-applied/pam_faillock_create_directory
+ - debian/patches-applied/pam_unix_avoid_checksalt
+ - debian/patches-applied/pam_env-allow-environment-files-without-EOL-at-EOF.patch
+ * Drop libpam-cracklib which has been obsoleted upstream.
+ * Add pkgconfig .pc files to libpam0g-dev. Closes: #1012688.
+ * Update .symbols file.
+ * Updated Romanian debconf translation, thanks Andrei Popescu, Closes:
+ #986416
+ * Drop versioning of quilt build-dependency to quiet lintian, since the
+ version is satisfied by oldoldoldstable.
+ * Drop unused build-build-dependency on bzip2.
+ * Adjust lintian overrides for latest lintian syntax.
+ * Update Standards-Version.
+ * Bump debhelper compat to 13.
+ * debian/not-installed: document upstream files that aren't used.
+ * Override incorrect lintian warning about use of dpkg database.
+ * Override lintian warning for PAM module manpages being in section 8
+ * Override lintian warning for unused debconf templates
+ * Install additional upstream manpages: faillock(8), environment(5),
+ pwhistory_helper(8)
+ * Install additional helpers in libpam-modules-bin: pam_namespace_helper,
+ pwhistory_helper
+ * Fix wrong syntax in symbols file
+
+ -- Steve Langasek <vorlon@debian.org> Thu, 18 Aug 2022 07:27:16 +0000
+
pam (1.4.0-13) unstable; urgency=medium
* Don't build with NIS support. This is only used for password changes on
diff --git a/debian/compat b/debian/compat
deleted file mode 100644
index ec635144..00000000
--- a/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/debian/control b/debian/control
index ba9d68e2..f80df13b 100644
--- a/debian/control
+++ b/debian/control
@@ -3,8 +3,8 @@ Section: libs
Priority: optional
Uploaders: Sam Hartman <hartmans@debian.org>
Maintainer: Steve Langasek <vorlon@debian.org>
-Standards-Version: 4.3.0
-Build-Depends: libcrack2-dev (>= 2.8), bzip2, debhelper (>= 9), quilt (>= 0.48-1), flex, libdb-dev, libselinux1-dev [linux-any], po-debconf, dh-autoreconf, autopoint, libaudit-dev [linux-any] <!stage1>, pkg-config, libfl-dev, libfl-dev:native, docbook-xsl, docbook-xml, xsltproc, libxml2-utils, w3m
+Standards-Version: 4.6.0
+Build-Depends: debhelper-compat (= 13), quilt, flex, libdb-dev, libselinux1-dev [linux-any], po-debconf, dh-autoreconf, autopoint, libaudit-dev [linux-any] <!stage1>, pkg-config, libfl-dev, libfl-dev:native, docbook-xsl, docbook-xml, xsltproc, libxml2-utils, w3m
Build-Conflicts-Indep: fop
Build-Conflicts: libdb4.2-dev, libxcrypt-dev
Vcs-Browser: https://salsa.debian.org/vorlon/pam
@@ -80,16 +80,6 @@ Description: Development files for PAM
possible to upgrade the authentication system without recompiling or
rewriting the applications.
-Package: libpam-cracklib
-Section: admin
-Architecture: any
-Multi-Arch: same
-Replaces: libpam0g-cracklib, libpam-modules (<< 1.1.0-3)
-Depends: ${misc:Depends}, ${shlibs:Depends}, libpam-runtime (>= 1.0.1-6), cracklib-runtime, wamerican | wordlist
-Description: PAM module to enable cracklib support
- This package includes libpam_cracklib, a PAM module that tests
- passwords to make sure they are not too weak during password change.
-
Package: libpam-doc
Provides: pam-doc
Section: doc
diff --git a/debian/libpam-cracklib.install b/debian/libpam-cracklib.install
deleted file mode 100644
index 55265e5e..00000000
--- a/debian/libpam-cracklib.install
+++ /dev/null
@@ -1,2 +0,0 @@
-lib/*/security/pam_cracklib.so
-debian/pam-configs/cracklib usr/share/pam-configs
diff --git a/debian/libpam-cracklib.manpages b/debian/libpam-cracklib.manpages
deleted file mode 100644
index 0660c415..00000000
--- a/debian/libpam-cracklib.manpages
+++ /dev/null
@@ -1 +0,0 @@
-debian/tmp/usr/share/man/man8/pam_cracklib.8
diff --git a/debian/libpam-cracklib.postinst b/debian/libpam-cracklib.postinst
deleted file mode 100644
index cf52f262..00000000
--- a/debian/libpam-cracklib.postinst
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-set -e
-
-if dpkg --compare-versions "$2" lt 1.0.1-6; then
- pam-auth-update --package
-fi
-
-#DEBHELPER#
diff --git a/debian/libpam-cracklib.prerm b/debian/libpam-cracklib.prerm
deleted file mode 100644
index fe234ac2..00000000
--- a/debian/libpam-cracklib.prerm
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-set -e
-
-if [ "$1" = remove ] && [ "${DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT:-1}" = 1 ]; then
- pam-auth-update --package --remove cracklib
-fi
-
-#DEBHELPER#
diff --git a/debian/libpam-modules-bin.install b/debian/libpam-modules-bin.install
index 1092f03c..e3e086ca 100644
--- a/debian/libpam-modules-bin.install
+++ b/debian/libpam-modules-bin.install
@@ -1,6 +1,8 @@
sbin/unix_chkpwd sbin
sbin/unix_update sbin
sbin/mkhomedir_helper sbin
+sbin/pam_namespace_helper
+sbin/pwhistory_helper
sbin/pam_timestamp_check usr/sbin
sbin/faillock usr/sbin
modules/pam_faillock/faillock.8 usr/share/man/man8
diff --git a/debian/libpam-modules-bin.lintian-overrides b/debian/libpam-modules-bin.lintian-overrides
index a40efeaf..8c185917 100644
--- a/debian/libpam-modules-bin.lintian-overrides
+++ b/debian/libpam-modules-bin.lintian-overrides
@@ -1,2 +1,2 @@
# yes, we know it's sgid, that's the whole point...
-libpam-modules-bin: setgid-binary sbin/unix_chkpwd 2755 root/shadow
+libpam-modules-bin: setgid-binary *sbin/unix_chkpwd* 2755 root/shadow
diff --git a/debian/libpam-modules-bin.manpages b/debian/libpam-modules-bin.manpages
index 8ab40612..5ea074f0 100644
--- a/debian/libpam-modules-bin.manpages
+++ b/debian/libpam-modules-bin.manpages
@@ -1,3 +1,6 @@
debian/tmp/usr/share/man/man8/mkhomedir_helper.8
debian/tmp/usr/share/man/man8/unix_*.8
debian/tmp/usr/share/man/man8/pam_timestamp_check.8
+debian/tmp/usr/share/man/man8/faillock.8
+debian/tmp/usr/share/man/man5/environment.5
+debian/tmp/usr/share/man/man8/pwhistory_helper.8
diff --git a/debian/libpam-modules.lintian-overrides b/debian/libpam-modules.lintian-overrides
index 3eba0f93..531ff4de 100644
--- a/debian/libpam-modules.lintian-overrides
+++ b/debian/libpam-modules.lintian-overrides
@@ -2,12 +2,13 @@
# fortifying. Since we know we have hardening turned on globally, suppress
# them. If we ever see this warning again for *other* modules, then we know
# there's a real problem.
-libpam-modules: hardening-no-fortify-functions lib/*/security/pam_echo.so
-libpam-modules: hardening-no-fortify-functions lib/*/security/pam_filter.so
-libpam-modules: hardening-no-fortify-functions lib/*/security/pam_group.so
-libpam-modules: hardening-no-fortify-functions lib/*/security/pam_localuser.so
-libpam-modules: hardening-no-fortify-functions lib/*/security/pam_shells.so
-libpam-modules: hardening-no-fortify-functions lib/*/security/pam_wheel.so
+libpam-modules: hardening-no-fortify-functions *lib/*/security/pam_echo.so*
+libpam-modules: hardening-no-fortify-functions *lib/*/security/pam_filter.so*
+libpam-modules: hardening-no-fortify-functions *lib/*/security/pam_group.so*
+libpam-modules: hardening-no-fortify-functions *lib/*/security/pam_localuser.so*
+libpam-modules: hardening-no-fortify-functions *lib/*/security/pam_shells.so*
+libpam-modules: hardening-no-fortify-functions *lib/*/security/pam_wheel.so*
# pam_deny.so does not use any symbol from libc.
-libpam-modules: shared-lib-without-dependency-information lib/*/security/pam_deny.so
-
+libpam-modules: shared-lib-without-dependency-information *lib/*/security/pam_deny.so*
+# lintian doesn't know what to do with manpages for pam modules
+libpam-modules: spare-manual-page *
diff --git a/debian/libpam-runtime.lintian-overrides b/debian/libpam-runtime.lintian-overrides
index 7a8b1a70..1385c591 100644
--- a/debian/libpam-runtime.lintian-overrides
+++ b/debian/libpam-runtime.lintian-overrides
@@ -2,4 +2,12 @@
libpam-runtime: no-debconf-config
# this warning is just plain crack, there's no reason that using debconf
# outside of a maintainer script implies an error.
-libpam-runtime: debconf-is-not-a-registry usr/sbin/pam-auth-update
+libpam-runtime: debconf-is-not-a-registry *usr/sbin/pam-auth-update*
+# false positive, we have to load the debconf templates from here
+libpam-runtime: uses-dpkg-database-directly usr/sbin/pam-auth-update
+# and lintian also says these templates are unused, which is false
+libpam-runtime: unused-debconf-template libpam-runtime/conflicts
+libpam-runtime: unused-debconf-template libpam-runtime/no_profiles_chosen
+libpam-runtime: unused-debconf-template libpam-runtime/override
+libpam-runtime: unused-debconf-template libpam-runtime/profiles
+libpam-runtime: unused-debconf-template libpam-runtime/title
diff --git a/debian/libpam0g-dev.install.in b/debian/libpam0g-dev.install.in
index 827690aa..8288bc01 100644
--- a/debian/libpam0g-dev.install.in
+++ b/debian/libpam0g-dev.install.in
@@ -1,2 +1,3 @@
usr/include/security/*
lib/@DEB_HOST_MULTIARCH@/*.a usr/lib/@DEB_HOST_MULTIARCH@
+lib/@DEB_HOST_MULTIARCH@/pkgconfig/*.pc usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig
diff --git a/debian/libpam0g.lintian-overrides b/debian/libpam0g.lintian-overrides
index 5f36562d..ef3655f5 100644
--- a/debian/libpam0g.lintian-overrides
+++ b/debian/libpam0g.lintian-overrides
@@ -1,6 +1,6 @@
# obvious multilib package false-positive; also the package name hasn't
# changed since the glibc transition, go us!
-libpam0g: package-name-doesnt-match-sonames libpam0 libpam-misc0 libpamc0
+libpam0g: package-name-doesnt-match-sonames libpam-misc0 libpam0 libpamc0
# yes, these are deliberately asked in the postinst because the checking
# for daemons to be restarted needs to be done in the postinst and not
# before
diff --git a/debian/libpam0g.symbols b/debian/libpam0g.symbols
index 7d13d32d..f38b17f0 100644
--- a/debian/libpam0g.symbols
+++ b/debian/libpam0g.symbols
@@ -9,7 +9,8 @@ libpam.so.0 libpam0g #MINVER#
*@LIBPAM_MODUTIL_1.1.3 1.1.3
*@LIBPAM_MODUTIL_1.1.9 1.3.1
*@LIBPAM_MODUTIL_1.3.2 1.3.2
-(optional)pam_modutil_sanitize_helper_fds 1.3.1
+ *@LIBPAM_MODUTIL_1.4.1 1.4.1
+ (optional)pam_modutil_sanitize_helper_fds 1.3.1
libpam_misc.so.0 libpam0g #MINVER#
*@LIBPAM_MISC_1.0 0.99.7.1
libpamc.so.0 libpam0g #MINVER#
diff --git a/debian/not-installed b/debian/not-installed
new file mode 100644
index 00000000..bd312af0
--- /dev/null
+++ b/debian/not-installed
@@ -0,0 +1,8 @@
+lib/*/security/*.a
+lib/*/security/*.la
+lib/*/*.la
+lib/*/*.so
+usr/share/man/man8/pam.8
+etc/environment
+# sample filter, do not install
+lib/*/security/pam_filter/upperLOWER
diff --git a/debian/pam-configs/cracklib b/debian/pam-configs/cracklib
deleted file mode 100644
index 1c48274f..00000000
--- a/debian/pam-configs/cracklib
+++ /dev/null
@@ -1,9 +0,0 @@
-Name: Cracklib password strength checking
-Default: yes
-Priority: 1024
-Conflicts: unix-zany
-Password-Type: Primary
-Password:
- requisite pam_cracklib.so retry=3 minlen=8 difok=3
-Password-Initial:
- requisite pam_cracklib.so retry=3 minlen=8 difok=3
diff --git a/debian/patches-applied/008_modules_pam_limits_chroot b/debian/patches-applied/008_modules_pam_limits_chroot
index acbdc1a9..7a86fdd5 100644
--- a/debian/patches-applied/008_modules_pam_limits_chroot
+++ b/debian/patches-applied/008_modules_pam_limits_chroot
@@ -2,19 +2,19 @@ Index: pam/modules/pam_limits/pam_limits.c
===================================================================
--- pam.orig/modules/pam_limits/pam_limits.c
+++ pam/modules/pam_limits/pam_limits.c
-@@ -88,6 +88,7 @@
- int flag_numsyslogins; /* whether to limit logins only for a
+@@ -90,6 +90,7 @@
specific user or to count all logins */
int priority; /* the priority to run user process with */
+ int nonewprivs; /* whether to prctl(PR_SET_NO_NEW_PRIVS) */
+ char chroot_dir[8092]; /* directory to chroot into */
struct user_limits_struct limits[RLIM_NLIMITS];
const char *conf_file;
int utmp_after_pam_call;
-@@ -98,6 +99,7 @@
- #define LIMIT_NUMSYSLOGINS RLIM_NLIMITS+2
+@@ -101,6 +102,7 @@
#define LIMIT_PRI RLIM_NLIMITS+3
-+#define LIMIT_CHROOT RLIM_NLIMITS+4
+ #define LIMIT_NONEWPRIVS RLIM_NLIMITS+4
++#define LIMIT_CHROOT RLIM_NLIMITS+5
#define LIMIT_SOFT 1
#define LIMIT_HARD 2
@@ -27,16 +27,16 @@ Index: pam/modules/pam_limits/pam_limits.c
return retval;
}
-@@ -554,6 +558,8 @@
- pl->flag_numsyslogins = 1;
- } else if (strcmp(lim_item, "priority") == 0) {
+@@ -591,6 +595,8 @@
limit_item = LIMIT_PRI;
+ } else if (strcmp(lim_item, "nonewprivs") == 0) {
+ limit_item = LIMIT_NONEWPRIVS;
+ } else if (strcmp(lim_item, "chroot") == 0) {
-+ limit_item = LIMIT_CHROOT;
++ limit_item = LIMIT_CHROOT;
} else {
pam_syslog(pamh, LOG_DEBUG, "unknown limit item '%s'", lim_item);
return;
-@@ -591,9 +597,9 @@
+@@ -640,9 +646,9 @@
pam_syslog(pamh, LOG_DEBUG,
"wrong limit value '%s' for limit type '%s'",
lim_value, lim_type);
@@ -48,8 +48,8 @@ Index: pam/modules/pam_limits/pam_limits.c
#ifdef __USE_FILE_OFFSET64
rlimit_value = strtoull (lim_value, &endptr, 10);
#else
-@@ -654,7 +660,11 @@
- #endif
+@@ -717,7 +723,11 @@
+ break;
}
- if ( (limit_item != LIMIT_LOGIN)
@@ -59,10 +59,10 @@ Index: pam/modules/pam_limits/pam_limits.c
+ }
+ else if ( (limit_item != LIMIT_LOGIN)
&& (limit_item != LIMIT_NUMSYSLOGINS)
- && (limit_item != LIMIT_PRI) ) {
- if (limit_type & LIMIT_SOFT) {
-@@ -998,6 +1008,15 @@
- retval |= LOGIN_ERR;
+ && (limit_item != LIMIT_PRI)
+ && (limit_item != LIMIT_NONEWPRIVS) ) {
+@@ -1071,6 +1081,15 @@
+ }
}
+ if (!retval && pl->chroot_dir[0]) {
@@ -81,7 +81,7 @@ Index: pam/modules/pam_limits/limits.conf.5.xml
===================================================================
--- pam.orig/modules/pam_limits/limits.conf.5.xml
+++ pam/modules/pam_limits/limits.conf.5.xml
-@@ -266,6 +266,12 @@
+@@ -273,6 +273,12 @@
(Linux 2.6.12 and higher)</para>
</listitem>
</varlistentry>
@@ -98,7 +98,7 @@ Index: pam/modules/pam_limits/limits.conf.5
===================================================================
--- pam.orig/modules/pam_limits/limits.conf.5
+++ pam/modules/pam_limits/limits.conf.5
-@@ -271,6 +271,11 @@
+@@ -279,6 +279,11 @@
.RS 4
maximum realtime priority allowed for non\-privileged processes (Linux 2\&.6\&.12 and higher)
.RE
@@ -114,7 +114,7 @@ Index: pam/modules/pam_limits/limits.conf
===================================================================
--- pam.orig/modules/pam_limits/limits.conf
+++ pam/modules/pam_limits/limits.conf
-@@ -35,6 +35,7 @@
+@@ -46,6 +46,7 @@
# - msgqueue - max memory used by POSIX message queues (bytes)
# - nice - max nice priority allowed to raise to values: [-20, 19]
# - rtprio - max realtime priority
@@ -122,7 +122,7 @@ Index: pam/modules/pam_limits/limits.conf
#
#<domain> <type> <item> <value>
#
-@@ -45,6 +46,7 @@
+@@ -56,6 +57,7 @@
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
diff --git a/debian/patches-applied/022_pam_unix_group_time_miscfixes b/debian/patches-applied/022_pam_unix_group_time_miscfixes
index b940aa27..8239fd98 100644
--- a/debian/patches-applied/022_pam_unix_group_time_miscfixes
+++ b/debian/patches-applied/022_pam_unix_group_time_miscfixes
@@ -6,7 +6,7 @@ Index: pam/modules/pam_group/pam_group.c
===================================================================
--- pam.orig/modules/pam_group/pam_group.c
+++ pam/modules/pam_group/pam_group.c
-@@ -761,9 +761,12 @@
+@@ -754,9 +754,12 @@
unsigned setting;
/* only interested in establishing credentials */
diff --git a/debian/patches-applied/026_pam_unix_passwd_unknown_user b/debian/patches-applied/026_pam_unix_passwd_unknown_user
index 99ac3f62..d277fee9 100644
--- a/debian/patches-applied/026_pam_unix_passwd_unknown_user
+++ b/debian/patches-applied/026_pam_unix_passwd_unknown_user
@@ -5,7 +5,7 @@ Index: pam/modules/pam_unix/passverify.c
===================================================================
--- pam.orig/modules/pam_unix/passverify.c
+++ pam/modules/pam_unix/passverify.c
-@@ -749,7 +749,7 @@
+@@ -801,7 +801,7 @@
struct passwd *tmpent = NULL;
struct stat st;
FILE *pwfile, *opwfile;
@@ -13,8 +13,8 @@ Index: pam/modules/pam_unix/passverify.c
+ int err = 1, found = 0;
int oldmask;
#ifdef WITH_SELINUX
- security_context_t prev_context=NULL;
-@@ -820,6 +820,7 @@
+ char *prev_context_raw = NULL;
+@@ -872,6 +872,7 @@
tmpent->pw_passwd = assigned_passwd.charp;
err = 0;
@@ -22,7 +22,7 @@ Index: pam/modules/pam_unix/passverify.c
}
if (putpwent(tmpent, pwfile)) {
D(("error writing entry to password file: %m"));
-@@ -862,7 +863,7 @@
+@@ -914,7 +915,7 @@
return PAM_SUCCESS;
} else {
unlink(PW_TMPFILE);
diff --git a/debian/patches-applied/027_pam_limits_better_init_allow_explicit_root b/debian/patches-applied/027_pam_limits_better_init_allow_explicit_root
index 5ac946f5..c4603f5a 100644
--- a/debian/patches-applied/027_pam_limits_better_init_allow_explicit_root
+++ b/debian/patches-applied/027_pam_limits_better_init_allow_explicit_root
@@ -17,7 +17,7 @@ Index: pam/modules/pam_limits/pam_limits.c
===================================================================
--- pam.orig/modules/pam_limits/pam_limits.c
+++ pam/modules/pam_limits/pam_limits.c
-@@ -46,6 +46,14 @@
+@@ -47,6 +47,14 @@
#include <libaudit.h>
#endif
@@ -32,7 +32,7 @@ Index: pam/modules/pam_limits/pam_limits.c
/* Module defines */
#define LINE_LENGTH 1024
-@@ -83,6 +91,7 @@
+@@ -84,6 +92,7 @@
/* internal data */
struct pam_limit_s {
@@ -40,7 +40,7 @@ Index: pam/modules/pam_limits/pam_limits.c
int login_limit; /* the max logins limit */
int login_limit_def; /* which entry set the login limit */
int flag_numsyslogins; /* whether to limit logins only for a
-@@ -448,9 +457,18 @@
+@@ -447,9 +456,18 @@
{
int i;
int retval = PAM_SUCCESS;
@@ -59,7 +59,7 @@ Index: pam/modules/pam_limits/pam_limits.c
for(i = 0; i < RLIM_NLIMITS; i++) {
int r = getrlimit(i, &pl->limits[i].limit);
if (r == -1) {
-@@ -466,18 +484,68 @@
+@@ -465,18 +483,68 @@
}
#ifdef __linux__
@@ -134,7 +134,7 @@ Index: pam/modules/pam_limits/pam_limits.c
errno = 0;
pl->priority = getpriority (PRIO_PROCESS, 0);
-@@ -816,7 +884,7 @@
+@@ -881,7 +949,7 @@
if (strcmp(uname, domain) == 0) /* this user have a limit */
process_limit(pamh, LIMITS_DEF_USER, ltype, item, value, ctrl, pl);
@@ -143,7 +143,7 @@ Index: pam/modules/pam_limits/pam_limits.c
if (ctrl & PAM_DEBUG_ARG) {
pam_syslog(pamh, LOG_DEBUG,
"checking if %s is in group %s",
-@@ -842,7 +910,7 @@
+@@ -907,7 +975,7 @@
process_limit(pamh, LIMITS_DEF_GROUP, ltype, item, value, ctrl,
pl);
}
@@ -152,7 +152,7 @@ Index: pam/modules/pam_limits/pam_limits.c
if (ctrl & PAM_DEBUG_ARG) {
pam_syslog(pamh, LOG_DEBUG,
"checking if %s is in group %s",
-@@ -876,7 +944,7 @@
+@@ -941,7 +1009,7 @@
} else {
switch(rngtype) {
case LIMIT_RANGE_NONE:
@@ -161,7 +161,7 @@ Index: pam/modules/pam_limits/pam_limits.c
process_limit(pamh, LIMITS_DEF_DEFAULT, ltype, item, value, ctrl,
pl);
break;
-@@ -1062,6 +1130,8 @@
+@@ -1134,6 +1202,8 @@
return PAM_ABORT;
}
@@ -174,7 +174,7 @@ Index: pam/modules/pam_limits/limits.conf
===================================================================
--- pam.orig/modules/pam_limits/limits.conf
+++ pam/modules/pam_limits/limits.conf
-@@ -11,6 +11,9 @@
+@@ -22,6 +22,9 @@
# - the wildcard *, for default entry
# - the wildcard %, can be also used with %group syntax,
# for maxlogin limit
@@ -184,7 +184,7 @@ Index: pam/modules/pam_limits/limits.conf
#
#<type> can have the two values:
# - "soft" for enforcing the soft limits
-@@ -41,6 +44,7 @@
+@@ -52,6 +55,7 @@
#
#* soft core 0
@@ -208,7 +208,7 @@ Index: pam/modules/pam_limits/limits.conf.5.xml
</listitem>
</varlistentry>
-@@ -323,6 +328,7 @@
+@@ -333,6 +338,7 @@
</para>
<programlisting>
* soft core 0
@@ -220,7 +220,7 @@ Index: pam/modules/pam_limits/limits.conf.5
===================================================================
--- pam.orig/modules/pam_limits/limits.conf.5
+++ pam/modules/pam_limits/limits.conf.5
-@@ -142,6 +142,10 @@
+@@ -145,6 +145,10 @@
\fB%:\fR\fI<gid>\fR
applicable to maxlogins limit only\&. It limits the total number of logins of all users that are member of the group with the specified gid\&.
.RE
@@ -231,7 +231,7 @@ Index: pam/modules/pam_limits/limits.conf.5
.RE
.PP
\fB<type>\fR
-@@ -317,6 +321,7 @@
+@@ -327,6 +331,7 @@
.\}
.nf
* soft core 0
@@ -243,7 +243,7 @@ Index: pam/modules/pam_limits/README
===================================================================
--- pam.orig/modules/pam_limits/README
+++ pam/modules/pam_limits/README
-@@ -54,6 +54,7 @@
+@@ -56,6 +56,7 @@
limits.conf.
* soft core 0
diff --git a/debian/patches-applied/031_pam_include b/debian/patches-applied/031_pam_include
index 1948f894..16cf6d31 100644
--- a/debian/patches-applied/031_pam_include
+++ b/debian/patches-applied/031_pam_include
@@ -8,7 +8,7 @@ Index: pam/libpam/pam_handlers.c
===================================================================
--- pam.orig/libpam/pam_handlers.c
+++ pam/libpam/pam_handlers.c
-@@ -122,6 +122,10 @@
+@@ -123,6 +123,10 @@
module_type = PAM_T_ACCT;
} else if (!strcasecmp("password", tok)) {
module_type = PAM_T_PASS;
@@ -19,7 +19,7 @@ Index: pam/libpam/pam_handlers.c
} else {
/* Illegal module type */
D(("_pam_init_handlers: bad module type: %s", tok));
-@@ -192,8 +196,10 @@
+@@ -193,8 +197,10 @@
_pam_set_default_control(actions, _PAM_ACTION_BAD);
}
@@ -30,7 +30,7 @@ Index: pam/libpam/pam_handlers.c
if (substack) {
res = _pam_add_handler(pamh, PAM_HT_SUBSTACK, other,
stack_level, module_type, actions, tok,
-@@ -204,13 +210,35 @@
+@@ -205,13 +211,35 @@
return PAM_ABORT;
}
}
diff --git a/debian/patches-applied/032_pam_limits_EPERM_NOT_FATAL b/debian/patches-applied/032_pam_limits_EPERM_NOT_FATAL
index d5ce6953..ec97b441 100644
--- a/debian/patches-applied/032_pam_limits_EPERM_NOT_FATAL
+++ b/debian/patches-applied/032_pam_limits_EPERM_NOT_FATAL
@@ -11,7 +11,7 @@ Index: pam/modules/pam_limits/pam_limits.c
===================================================================
--- pam.orig/modules/pam_limits/pam_limits.c
+++ pam/modules/pam_limits/pam_limits.c
-@@ -1046,6 +1046,8 @@
+@@ -1111,6 +1111,8 @@
if (res != 0)
pam_syslog(pamh, LOG_ERR, "Could not set limit for '%s': %m",
rlimit2str(i));
diff --git a/debian/patches-applied/036_pam_wheel_getlogin_considered_harmful b/debian/patches-applied/036_pam_wheel_getlogin_considered_harmful
index ca465d99..805c62f4 100644
--- a/debian/patches-applied/036_pam_wheel_getlogin_considered_harmful
+++ b/debian/patches-applied/036_pam_wheel_getlogin_considered_harmful
@@ -12,7 +12,7 @@ Index: pam/modules/pam_wheel/pam_wheel.c
===================================================================
--- pam.orig/modules/pam_wheel/pam_wheel.c
+++ pam/modules/pam_wheel/pam_wheel.c
-@@ -60,9 +60,8 @@
+@@ -47,9 +47,8 @@
/* argument parsing */
#define PAM_DEBUG_ARG 0x0001
@@ -24,7 +24,7 @@ Index: pam/modules/pam_wheel/pam_wheel.c
#define PAM_ROOT_ONLY_ARG 0x0020
static int
-@@ -80,8 +79,7 @@
+@@ -68,8 +67,7 @@
if (!strcmp(*argv,"debug"))
ctrl |= PAM_DEBUG_ARG;
@@ -34,35 +34,47 @@ Index: pam/modules/pam_wheel/pam_wheel.c
else if (!strcmp(*argv,"trust"))
ctrl |= PAM_TRUST_ARG;
else if (!strcmp(*argv,"deny"))
-@@ -129,27 +127,14 @@
+@@ -118,39 +116,14 @@
}
}
- if (ctrl & PAM_USE_UID_ARG) {
-- tpwd = pam_modutil_getpwuid (pamh, getuid());
-- if (!tpwd) {
-- if (ctrl & PAM_DEBUG_ARG) {
+- tpwd = pam_modutil_getpwuid (pamh, getuid());
+- if (tpwd == NULL) {
+- if (ctrl & PAM_DEBUG_ARG) {
- pam_syslog(pamh, LOG_NOTICE, "who is running me ?!");
-- }
-- return PAM_SERVICE_ERR;
-- }
-- fromsu = tpwd->pw_name;
+- }
+- return PAM_SERVICE_ERR;
+- }
+- fromsu = tpwd->pw_name;
- } else {
-- fromsu = pam_modutil_getlogin(pamh);
-- if (fromsu) {
-- tpwd = pam_modutil_getpwnam (pamh, fromsu);
-- }
-- if (!fromsu || !tpwd) {
-- if (ctrl & PAM_DEBUG_ARG) {
-- pam_syslog(pamh, LOG_NOTICE, "who is running me ?!");
-- }
-- return PAM_SERVICE_ERR;
+- fromsu = pam_modutil_getlogin(pamh);
+-
+- /* if getlogin fails try a fallback to PAM_RUSER */
+- if (fromsu == NULL) {
+- const char *rhostname;
+-
+- retval = pam_get_item(pamh, PAM_RHOST, (const void **)&rhostname);
+- if (retval != PAM_SUCCESS || rhostname == NULL) {
+- retval = pam_get_item(pamh, PAM_RUSER, (const void **)&fromsu);
+- }
+- }
+-
+- if (fromsu != NULL) {
+- tpwd = pam_modutil_getpwnam (pamh, fromsu);
+- }
+-
+- if (fromsu == NULL || tpwd == NULL) {
+- if (ctrl & PAM_DEBUG_ARG) {
+- pam_syslog(pamh, LOG_NOTICE, "who is running me ?!");
+- }
+- return PAM_SERVICE_ERR;
+ tpwd = pam_modutil_getpwuid (pamh, getuid());
-+ if (!tpwd) {
-+ if (ctrl & PAM_DEBUG_ARG) {
-+ pam_syslog(pamh, LOG_NOTICE, "who is running me ?!");
- }
-+ return PAM_SERVICE_ERR;
++ if (tpwd == NULL) {
++ if (ctrl & PAM_DEBUG_ARG) {
++ pam_syslog(pamh, LOG_NOTICE, "who is running me ?!");
+ }
++ return PAM_SERVICE_ERR;
}
+ fromsu = tpwd->pw_name;
@@ -92,9 +104,9 @@ Index: pam/modules/pam_wheel/pam_wheel.8.xml
- </term>
- <listitem>
- <para>
-- The check for wheel membership will be done against
-- the current uid instead of the original one (useful when
-- jumping with su from one account to another for example).
+- The check will be done against the real uid of the calling process,
+- instead of trying to obtain the user from the login session
+- associated with the terminal in use.
- </para>
- </listitem>
- </varlistentry>
@@ -121,7 +133,7 @@ Index: pam/modules/pam_wheel/pam_wheel.8
-.PP
-\fBuse_uid\fR
-.RS 4
--The check for wheel membership will be done against the current uid instead of the original one (useful when jumping with su from one account to another for example)\&.
+-The check will be done against the real uid of the calling process, instead of trying to obtain the user from the login session associated with the terminal in use\&.
-.RE
.SH "MODULE TYPES PROVIDED"
.PP
@@ -136,9 +148,9 @@ Index: pam/modules/pam_wheel/README
-use_uid
-
-- The check for wheel membership will be done against the current uid instead
-- of the original one (useful when jumping with su from one account to
-- another for example).
+- The check will be done against the real uid of the calling process, instead
+- of trying to obtain the user from the login session associated with the
+- terminal in use.
-
EXAMPLES
diff --git a/debian/patches-applied/040_pam_limits_log_failure b/debian/patches-applied/040_pam_limits_log_failure
index 616887c3..0ef703bf 100644
--- a/debian/patches-applied/040_pam_limits_log_failure
+++ b/debian/patches-applied/040_pam_limits_log_failure
@@ -11,7 +11,7 @@ Index: pam/modules/pam_limits/pam_limits.c
===================================================================
--- pam.orig/modules/pam_limits/pam_limits.c
+++ pam/modules/pam_limits/pam_limits.c
-@@ -1043,9 +1043,19 @@
+@@ -1108,9 +1108,19 @@
if (pl->limits[i].limit.rlim_cur > pl->limits[i].limit.rlim_max)
pl->limits[i].limit.rlim_cur = pl->limits[i].limit.rlim_max;
res = setrlimit(i, &pl->limits[i].limit);
diff --git a/debian/patches-applied/PAM-manpage-section b/debian/patches-applied/PAM-manpage-section
index 815c2614..7cdadad3 100644
--- a/debian/patches-applied/PAM-manpage-section
+++ b/debian/patches-applied/PAM-manpage-section
@@ -35,8 +35,8 @@ Index: pam/doc/man/PAM.8
.\" Source: Linux-PAM Manual
.\" Language: English
.\"
--.TH "PAM" "8" "06/08/2020" "Linux-PAM Manual" "Linux-PAM Manual"
-+.TH "PAM" "7" "06/08/2020" "Linux-PAM Manual" "Linux-PAM Manual"
+-.TH "PAM" "8" "09/03/2021" "Linux-PAM Manual" "Linux-PAM Manual"
++.TH "PAM" "7" "09/03/2021" "Linux-PAM Manual" "Linux-PAM Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -128,7 +128,7 @@ Index: pam/modules/pam_limits/limits.conf.5.xml
===================================================================
--- pam.orig/modules/pam_limits/limits.conf.5.xml
+++ pam/modules/pam_limits/limits.conf.5.xml
-@@ -346,7 +346,7 @@
+@@ -357,7 +357,7 @@
<para>
<citerefentry><refentrytitle>pam_limits</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>pam.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
@@ -141,7 +141,7 @@ Index: pam/modules/pam_limits/limits.conf.5
===================================================================
--- pam.orig/modules/pam_limits/limits.conf.5
+++ pam/modules/pam_limits/limits.conf.5
-@@ -343,7 +343,7 @@
+@@ -351,7 +351,7 @@
.PP
\fBpam_limits\fR(8),
\fBpam.d\fR(5),
@@ -228,32 +228,6 @@ Index: pam/modules/pam_access/pam_access.8
.SH "AUTHORS"
.PP
The logdaemon style login access control scheme was designed and implemented by Wietse Venema\&. The pam_access PAM module was developed by Alexei Nogin <alexei@nogin\&.dnttm\&.ru>\&. The IPv6 support and the network(address) / netmask feature was developed and provided by Mike Becher <mike\&.becher@lrz\-muenchen\&.de>\&.
-Index: pam/modules/pam_cracklib/pam_cracklib.8.xml
-===================================================================
---- pam.orig/modules/pam_cracklib/pam_cracklib.8.xml
-+++ pam/modules/pam_cracklib/pam_cracklib.8.xml
-@@ -577,7 +577,7 @@
- <refentrytitle>pam.d</refentrytitle><manvolnum>5</manvolnum>
- </citerefentry>,
- <citerefentry>
-- <refentrytitle>pam</refentrytitle><manvolnum>8</manvolnum>
-+ <refentrytitle>pam</refentrytitle><manvolnum>7</manvolnum>
- </citerefentry>
- </para>
- </refsect1>
-Index: pam/modules/pam_cracklib/pam_cracklib.8
-===================================================================
---- pam.orig/modules/pam_cracklib/pam_cracklib.8
-+++ pam/modules/pam_cracklib/pam_cracklib.8
-@@ -357,7 +357,7 @@
- .PP
- \fBpam.conf\fR(5),
- \fBpam.d\fR(5),
--\fBpam\fR(8)
-+\fBpam\fR(7)
- .SH "AUTHOR"
- .PP
- pam_cracklib was written by Cristian Gafton <gafton@redhat\&.com>
Index: pam/modules/pam_debug/pam_debug.8.xml
===================================================================
--- pam.orig/modules/pam_debug/pam_debug.8.xml
@@ -336,7 +310,7 @@ Index: pam/modules/pam_env/pam_env.8.xml
===================================================================
--- pam.orig/modules/pam_env/pam_env.8.xml
+++ pam/modules/pam_env/pam_env.8.xml
-@@ -246,7 +246,7 @@
+@@ -254,7 +254,7 @@
<refentrytitle>pam.d</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
@@ -349,7 +323,7 @@ Index: pam/modules/pam_exec/pam_exec.8.xml
===================================================================
--- pam.orig/modules/pam_exec/pam_exec.8.xml
+++ pam/modules/pam_exec/pam_exec.8.xml
-@@ -287,7 +287,7 @@
+@@ -303,7 +303,7 @@
<refentrytitle>pam.d</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
@@ -362,7 +336,7 @@ Index: pam/modules/pam_exec/pam_exec.8
===================================================================
--- pam.orig/modules/pam_exec/pam_exec.8
+++ pam/modules/pam_exec/pam_exec.8
-@@ -177,7 +177,7 @@
+@@ -182,7 +182,7 @@
.PP
\fBpam.conf\fR(5),
\fBpam.d\fR(5),
@@ -687,7 +661,7 @@ Index: pam/modules/pam_mkhomedir/pam_mkhomedir.8.xml
===================================================================
--- pam.orig/modules/pam_mkhomedir/pam_mkhomedir.8.xml
+++ pam/modules/pam_mkhomedir/pam_mkhomedir.8.xml
-@@ -198,7 +198,7 @@
+@@ -205,7 +205,7 @@
<refentrytitle>pam.d</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
@@ -700,7 +674,7 @@ Index: pam/modules/pam_mkhomedir/pam_mkhomedir.8
===================================================================
--- pam.orig/modules/pam_mkhomedir/pam_mkhomedir.8
+++ pam/modules/pam_mkhomedir/pam_mkhomedir.8
-@@ -124,7 +124,7 @@
+@@ -129,7 +129,7 @@
.SH "SEE ALSO"
.PP
\fBpam.d\fR(5),
@@ -713,7 +687,7 @@ Index: pam/modules/pam_motd/pam_motd.8.xml
===================================================================
--- pam.orig/modules/pam_motd/pam_motd.8.xml
+++ pam/modules/pam_motd/pam_motd.8.xml
-@@ -195,7 +195,7 @@
+@@ -196,7 +196,7 @@
<refentrytitle>pam.d</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
@@ -739,7 +713,7 @@ Index: pam/modules/pam_namespace/pam_namespace.8.xml
===================================================================
--- pam.orig/modules/pam_namespace/pam_namespace.8.xml
+++ pam/modules/pam_namespace/pam_namespace.8.xml
-@@ -399,7 +399,7 @@
+@@ -362,7 +362,7 @@
<refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
@@ -752,7 +726,7 @@ Index: pam/modules/pam_namespace/pam_namespace.8
===================================================================
--- pam.orig/modules/pam_namespace/pam_namespace.8
+++ pam/modules/pam_namespace/pam_namespace.8
-@@ -178,7 +178,7 @@
+@@ -148,7 +148,7 @@
\fBnamespace.conf\fR(5),
\fBpam.d\fR(5),
\fBmount\fR(8),
@@ -912,8 +886,8 @@ Index: pam/modules/pam_selinux/pam_selinux.8
.\" Source: Linux-PAM Manual
.\" Language: English
.\"
--.TH "PAM_SELINUX" "8" "06/08/2020" "Linux-PAM Manual" "Linux\-PAM Manual"
-+.TH "PAM_SELINUX" "7" "06/08/2020" "Linux-PAM Manual" "Linux\-PAM Manual"
+-.TH "PAM_SELINUX" "8" "09/03/2021" "Linux-PAM Manual" "Linux\-PAM Manual"
++.TH "PAM_SELINUX" "7" "09/03/2021" "Linux-PAM Manual" "Linux\-PAM Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -1004,32 +978,6 @@ Index: pam/modules/pam_succeed_if/pam_succeed_if.8
.SH "AUTHOR"
.PP
Nalin Dahyabhai <nalin@redhat\&.com>
-Index: pam/modules/pam_tally/pam_tally.8.xml
-===================================================================
---- pam.orig/modules/pam_tally/pam_tally.8.xml
-+++ pam/modules/pam_tally/pam_tally.8.xml
-@@ -444,7 +444,7 @@
- <refentrytitle>pam.d</refentrytitle><manvolnum>5</manvolnum>
- </citerefentry>,
- <citerefentry>
-- <refentrytitle>pam</refentrytitle><manvolnum>8</manvolnum>
-+ <refentrytitle>pam</refentrytitle><manvolnum>7</manvolnum>
- </citerefentry>
- </para>
- </refsect1>
-Index: pam/modules/pam_tally/pam_tally.8
-===================================================================
---- pam.orig/modules/pam_tally/pam_tally.8
-+++ pam/modules/pam_tally/pam_tally.8
-@@ -250,7 +250,7 @@
- \fBfaillog\fR(8),
- \fBpam.conf\fR(5),
- \fBpam.d\fR(5),
--\fBpam\fR(8)
-+\fBpam\fR(7)
- .SH "AUTHOR"
- .PP
- pam_tally was written by Tim Baverstock and Tomas Mraz\&.
Index: pam/modules/pam_time/pam_time.8.xml
===================================================================
--- pam.orig/modules/pam_time/pam_time.8.xml
@@ -1504,7 +1452,7 @@ Index: pam/modules/pam_userdb/pam_userdb.8.xml
===================================================================
--- pam.orig/modules/pam_userdb/pam_userdb.8.xml
+++ pam/modules/pam_userdb/pam_userdb.8.xml
-@@ -278,7 +278,7 @@
+@@ -279,7 +279,7 @@
<refentrytitle>pam.d</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
@@ -1612,8 +1560,8 @@ Index: pam/modules/pam_env/pam_env.8
.\" Source: Linux-PAM Manual
.\" Language: English
.\"
--.TH "PAM_ENV" "8" "06/08/2020" "Linux-PAM Manual" "Linux-PAM Manual"
-+.TH "PAM_ENV" "7" "06/08/2020" "Linux-PAM Manual" "Linux-PAM Manual"
+-.TH "PAM_ENV" "8" "09/03/2021" "Linux-PAM Manual" "Linux-PAM Manual"
++.TH "PAM_ENV" "7" "09/03/2021" "Linux-PAM Manual" "Linux-PAM Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -1669,37 +1617,11 @@ Index: pam/modules/pam_sepermit/sepermit.conf.5
\fBselinux\fR(8),
.SH "AUTHOR"
.PP
-Index: pam/modules/pam_tally2/pam_tally2.8.xml
-===================================================================
---- pam.orig/modules/pam_tally2/pam_tally2.8.xml
-+++ pam/modules/pam_tally2/pam_tally2.8.xml
-@@ -435,7 +435,7 @@
- <refentrytitle>pam.d</refentrytitle><manvolnum>5</manvolnum>
- </citerefentry>,
- <citerefentry>
-- <refentrytitle>pam</refentrytitle><manvolnum>8</manvolnum>
-+ <refentrytitle>pam</refentrytitle><manvolnum>7</manvolnum>
- </citerefentry>
- </para>
- </refsect1>
-Index: pam/modules/pam_tally2/pam_tally2.8
-===================================================================
---- pam.orig/modules/pam_tally2/pam_tally2.8
-+++ pam/modules/pam_tally2/pam_tally2.8
-@@ -238,7 +238,7 @@
- .PP
- \fBpam.conf\fR(5),
- \fBpam.d\fR(5),
--\fBpam\fR(8)
-+\fBpam\fR(7)
- .SH "AUTHOR"
- .PP
- pam_tally2 was written by Tim Baverstock and Tomas Mraz\&.
Index: pam/modules/pam_timestamp/pam_timestamp.8.xml
===================================================================
--- pam.orig/modules/pam_timestamp/pam_timestamp.8.xml
+++ pam/modules/pam_timestamp/pam_timestamp.8.xml
-@@ -188,7 +188,7 @@
+@@ -193,7 +193,7 @@
<refentrytitle>pam.d</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
@@ -1712,7 +1634,7 @@ Index: pam/modules/pam_timestamp/pam_timestamp.8
===================================================================
--- pam.orig/modules/pam_timestamp/pam_timestamp.8
+++ pam/modules/pam_timestamp/pam_timestamp.8
-@@ -124,7 +124,7 @@
+@@ -129,7 +129,7 @@
\fBpam_timestamp_check\fR(8),
\fBpam.conf\fR(5),
\fBpam.d\fR(5),
@@ -1746,7 +1668,7 @@ Index: pam/modules/pam_timestamp/pam_timestamp_check.8
+\fBpam\fR(7)
.SH "AUTHOR"
.PP
- pam_tally was written by Nalin Dahyabhai\&.
+ pam_timestamp was written by Nalin Dahyabhai\&.
Index: pam/modules/pam_tty_audit/pam_tty_audit.8.xml
===================================================================
--- pam.orig/modules/pam_tty_audit/pam_tty_audit.8.xml
diff --git a/debian/patches-applied/make_documentation_reproducible.patch b/debian/patches-applied/make_documentation_reproducible.patch
index ed15df13..b6a4bfe3 100644
--- a/debian/patches-applied/make_documentation_reproducible.patch
+++ b/debian/patches-applied/make_documentation_reproducible.patch
@@ -8,7 +8,7 @@ Index: pam/configure.ac
===================================================================
--- pam.orig/configure.ac
+++ pam/configure.ac
-@@ -619,7 +619,7 @@
+@@ -585,7 +585,7 @@
AC_PATH_PROG([BROWSER], [w3m])
if test -n "$BROWSER"; then
diff --git a/debian/patches-applied/pam-limits-nofile-fd-setsize-cap b/debian/patches-applied/pam-limits-nofile-fd-setsize-cap
index 302c911f..9c0503c7 100644
--- a/debian/patches-applied/pam-limits-nofile-fd-setsize-cap
+++ b/debian/patches-applied/pam-limits-nofile-fd-setsize-cap
@@ -43,7 +43,7 @@ Index: pam/modules/pam_limits/pam_limits.c
===================================================================
--- pam.orig/modules/pam_limits/pam_limits.c
+++ pam/modules/pam_limits/pam_limits.c
-@@ -451,6 +451,14 @@
+@@ -450,6 +450,14 @@
pl->limits[i].src_hard = LIMITS_DEF_KERNEL;
}
fclose(limitsfile);
diff --git a/debian/patches-applied/pam_env-allow-environment-files-without-EOL-at-EOF.patch b/debian/patches-applied/pam_env-allow-environment-files-without-EOL-at-EOF.patch
deleted file mode 100644
index 340e4a7f..00000000
--- a/debian/patches-applied/pam_env-allow-environment-files-without-EOL-at-EOF.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: Tomas Mraz <tmraz@fedoraproject.org>
-Date: Wed, 4 Nov 2020 09:37:36 +0100
-Subject: pam_env: allow environment files without EOL at EOF
-
-Fixes #263
-
-* modules/pam_env/pam_env.c (_assemble_line): Do not error out if at feof()
-
-Origin: upstream, https://github.com/linux-pam/linux-pam/commit/12824dd648b0668968231044ed805d1f3b212d7e
-Applied-Upstream: 1.5.0
-Bug: https://github.com/linux-pam/linux-pam/issues/263
-Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/pam/+bug/1953201
-Reviewed-By: Sergio Durigan Junior <sergiodj@ubuntu.com>
----
- modules/pam_env/pam_env.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/modules/pam_env/pam_env.c b/modules/pam_env/pam_env.c
-index 79d4372..4aa3777 100644
---- a/modules/pam_env/pam_env.c
-+++ b/modules/pam_env/pam_env.c
-@@ -311,7 +311,7 @@ static int _assemble_line(FILE *f, char *buffer, int buf_len)
- D(("_assemble_line: corrupted or binary file"));
- return -1;
- }
-- if (p[strlen(p)-1] != '\n') {
-+ if (p[strlen(p)-1] != '\n' && !feof(f)) {
- D(("_assemble_line: line too long"));
- return -1;
- }
diff --git a/debian/patches-applied/pam_faillock_create_directory b/debian/patches-applied/pam_faillock_create_directory
deleted file mode 100644
index 420e2937..00000000
--- a/debian/patches-applied/pam_faillock_create_directory
+++ /dev/null
@@ -1,31 +0,0 @@
-commit d54870f993e97fe75e2cd0470a3701d5af22877c
-Author: Changqing Li <changqing.li@windriver.com>
-Date: Tue Jan 12 14:45:34 2021 +0800
-
- faillock: create tallydir before creating tallyfile
-
- The default tallydir is "/var/run/faillock", and this default
- tallydir may not exist.
-
- Function open may fail as tallydir does not exist when creating
- the tallyfile. Therefore, faillock will not work well.
-
- Fix this problem by creating tallydir before creating tallyfile
- when the tallydir does not exist.
-
- Signed-off-by: Changqing Li <changqing.li@windriver.com>
-
-Index: pam/modules/pam_faillock/faillock.c
-===================================================================
---- pam.orig/modules/pam_faillock/faillock.c
-+++ pam/modules/pam_faillock/faillock.c
-@@ -74,6 +74,9 @@ open_tally (const char *dir, const char
-
- if (create) {
- flags |= O_CREAT;
-+ if (access(dir, F_OK) != 0) {
-+ mkdir(dir, 0755);
-+ }
- }
-
- fd = open(path, flags, 0600);
diff --git a/debian/patches-applied/pam_mkhomedir_stat_before_opendir b/debian/patches-applied/pam_mkhomedir_stat_before_opendir
index 3e5f0a12..aec49b69 100644
--- a/debian/patches-applied/pam_mkhomedir_stat_before_opendir
+++ b/debian/patches-applied/pam_mkhomedir_stat_before_opendir
@@ -2,7 +2,7 @@ Index: pam/modules/pam_mkhomedir/mkhomedir_helper.c
===================================================================
--- pam.orig/modules/pam_mkhomedir/mkhomedir_helper.c
+++ pam/modules/pam_mkhomedir/mkhomedir_helper.c
-@@ -38,6 +38,7 @@ create_homedir(const struct passwd *pwd,
+@@ -39,6 +39,7 @@
DIR *d;
struct dirent *dent;
int retval = PAM_SESSION_ERR;
@@ -10,7 +10,7 @@ Index: pam/modules/pam_mkhomedir/mkhomedir_helper.c
/* Create the new directory */
if (mkdir(dest, 0700) && errno != EEXIST)
-@@ -53,6 +54,12 @@ create_homedir(const struct passwd *pwd,
+@@ -54,6 +55,12 @@
goto go_out;
}
diff --git a/debian/patches-applied/pam_unix_avoid_checksalt b/debian/patches-applied/pam_unix_avoid_checksalt
deleted file mode 100644
index 5a441145..00000000
--- a/debian/patches-applied/pam_unix_avoid_checksalt
+++ /dev/null
@@ -1,43 +0,0 @@
-debian-bug: #992848
-upstream-bug: https://github.com/linux-pam/linux-pam/issues/367
-
-
-From 980d90c9232fe5325d1a4deddd42c597cf9e1a54 Mon Sep 17 00:00:00 2001
-From: "Dmitry V. Levin" <ldv@altlinux.org>
-Date: Thu, 10 Jun 2021 14:00:00 +0000
-Subject: [PATCH] pam_unix: do not use crypt_checksalt when checking for
- password expiration
-
-According to Zack Weinberg, the intended meaning of
-CRYPT_SALT_METHOD_LEGACY is "passwd(1) should not use this hashing
-method", it is not supposed to mean "force a password change on next
-login for any user with an existing stored hash using this method".
-
-This reverts commit 4da9febc39b955892a30686e8396785b96bb8ba5.
-
-* modules/pam_unix/passverify.c (check_shadow_expiry)
-[CRYPT_CHECKSALT_AVAILABLE]: Remove.
-
-Closes: https://github.com/linux-pam/linux-pam/issues/367
----
- modules/pam_unix/passverify.c | 6 ------
- 1 file changed, 6 deletions(-)
-
-diff --git a/modules/pam_unix/passverify.c b/modules/pam_unix/passverify.c
-index f6132f805..5a19ed856 100644
---- a/modules/pam_unix/passverify.c
-+++ b/modules/pam_unix/passverify.c
-@@ -289,13 +289,7 @@ PAMH_ARG_DECL(int check_shadow_expiry,
- D(("account expired"));
- return PAM_ACCT_EXPIRED;
- }
--#if defined(CRYPT_CHECKSALT_AVAILABLE) && CRYPT_CHECKSALT_AVAILABLE
-- if (spent->sp_lstchg == 0 ||
-- crypt_checksalt(spent->sp_pwdp) == CRYPT_SALT_METHOD_LEGACY ||
-- crypt_checksalt(spent->sp_pwdp) == CRYPT_SALT_TOO_CHEAP) {
--#else
- if (spent->sp_lstchg == 0) {
--#endif
- D(("need a new password"));
- *daysleft = 0;
- return PAM_NEW_AUTHTOK_REQD;
diff --git a/debian/patches-applied/pam_unix_dont_trust_chkpwd_caller.patch b/debian/patches-applied/pam_unix_dont_trust_chkpwd_caller.patch
index 11d4ee31..6a9e525e 100644
--- a/debian/patches-applied/pam_unix_dont_trust_chkpwd_caller.patch
+++ b/debian/patches-applied/pam_unix_dont_trust_chkpwd_caller.patch
@@ -11,10 +11,10 @@ Index: pam/modules/pam_unix/unix_chkpwd.c
===================================================================
--- pam.orig/modules/pam_unix/unix_chkpwd.c
+++ pam/modules/pam_unix/unix_chkpwd.c
-@@ -137,9 +137,10 @@
+@@ -138,9 +138,10 @@
/* if the caller specifies the username, verify that user
matches it */
- if (strcmp(user, argv[1])) {
+ if (user == NULL || strcmp(user, argv[1])) {
+ gid_t gid = getgid();
user = argv[1];
/* no match -> permanently change to the real user and proceed */
diff --git a/debian/patches-applied/pam_unix_fix_sgid_shadow_auth.patch b/debian/patches-applied/pam_unix_fix_sgid_shadow_auth.patch
deleted file mode 100644
index 0ce85eb7..00000000
--- a/debian/patches-applied/pam_unix_fix_sgid_shadow_auth.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Revert upstream change that prevents pam_unix from working with sgid
-shadow applications.
-
-Authors: Steve Langasek <vorlon@debian.org>
-
-Upstream status: to be submitted (and debated...)
-
-Index: pam/modules/pam_unix/passverify.c
-===================================================================
---- pam.orig/modules/pam_unix/passverify.c
-+++ pam/modules/pam_unix/passverify.c
-@@ -198,11 +198,11 @@
- * ...and shadow password file entry for this user,
- * if shadowing is enabled
- */
-+ *spwdent = pam_modutil_getspnam(pamh, name);
- #ifndef HELPER_COMPILE
-- if (geteuid() || SELINUX_ENABLED)
-+ if (*spwdent == NULL && (geteuid() || SELINUX_ENABLED))
- return PAM_UNIX_RUN_HELPER;
- #endif
-- *spwdent = pam_modutil_getspnam(pamh, name);
- if (*spwdent == NULL || (*spwdent)->sp_pwdp == NULL)
- return PAM_AUTHINFO_UNAVAIL;
- }
diff --git a/debian/patches-applied/pam_unix_initialize_daysleft b/debian/patches-applied/pam_unix_initialize_daysleft
deleted file mode 100644
index e304a16e..00000000
--- a/debian/patches-applied/pam_unix_initialize_daysleft
+++ /dev/null
@@ -1,29 +0,0 @@
-bug-debian: https://bugs.debian.org/980285
-
-commit db6b293046aee4735f3aa2d1713742ed4b533219
-Author: Tomas Mraz <tmraz@fedoraproject.org>
-Date: Wed Jul 22 11:47:55 2020 +0200
-
- Fix missing initialization of daysleft
-
- The daysleft otherwise stays uninitialized if there is no shadow entry.
-
- Regression from commit f5adefa.
-
- Fixes #255
-
- * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Initialize daysleft.
-
-Index: pam/modules/pam_unix/pam_unix_acct.c
-===================================================================
---- pam.orig/modules/pam_unix/pam_unix_acct.c
-+++ pam/modules/pam_unix/pam_unix_acct.c
-@@ -189,7 +189,7 @@ pam_sm_acct_mgmt(pam_handle_t *pamh, int
- unsigned long long ctrl;
- const void *void_uname;
- const char *uname;
-- int retval, daysleft;
-+ int retval, daysleft = -1;
- char buf[256];
-
- D(("called."));
diff --git a/debian/patches-applied/series b/debian/patches-applied/series
index d3f4a191..3ea285ae 100644
--- a/debian/patches-applied/series
+++ b/debian/patches-applied/series
@@ -1,4 +1,3 @@
-pam_unix_fix_sgid_shadow_auth.patch
pam_unix_dont_trust_chkpwd_caller.patch
make_documentation_reproducible.patch
007_modules_pam_unix
@@ -22,9 +21,4 @@ pam-limits-nofile-fd-setsize-cap
fix-autoreconf.patch
nullok_secure-compat.patch
-pam_unix_initialize_daysleft
-pam_faillock_create_directory
pam_mkhomedir_stat_before_opendir
-pam_unix_avoid_checksalt
-
-pam_env-allow-environment-files-without-EOL-at-EOF.patch
diff --git a/debian/patches-applied/update-motd b/debian/patches-applied/update-motd
index d84ecf57..14d5fee4 100644
--- a/debian/patches-applied/update-motd
+++ b/debian/patches-applied/update-motd
@@ -10,7 +10,7 @@ Index: pam/modules/pam_motd/pam_motd.c
===================================================================
--- pam.orig/modules/pam_motd/pam_motd.c
+++ pam/modules/pam_motd/pam_motd.c
-@@ -286,6 +286,7 @@
+@@ -352,6 +352,7 @@
int argc, const char **argv)
{
int retval = PAM_IGNORE;
@@ -18,7 +18,7 @@ Index: pam/modules/pam_motd/pam_motd.c
const char *motd_path = NULL;
char *motd_path_copy = NULL;
unsigned int num_motd_paths = 0;
-@@ -295,6 +296,7 @@
+@@ -361,6 +362,7 @@
unsigned int num_motd_dir_paths = 0;
char **motd_dir_path_split = NULL;
int report_missing;
@@ -26,7 +26,7 @@ Index: pam/modules/pam_motd/pam_motd.c
if (flags & PAM_SILENT) {
return retval;
-@@ -324,6 +326,9 @@
+@@ -390,6 +392,9 @@
"motd_dir= specification missing argument - ignored");
}
}
@@ -36,7 +36,7 @@ Index: pam/modules/pam_motd/pam_motd.c
else
pam_syslog(pamh, LOG_ERR, "unknown option: %s", *argv);
}
-@@ -336,6 +341,19 @@
+@@ -402,6 +407,19 @@
report_missing = 1;
}
@@ -60,7 +60,7 @@ Index: pam/modules/pam_motd/pam_motd.8.xml
===================================================================
--- pam.orig/modules/pam_motd/pam_motd.8.xml
+++ pam/modules/pam_motd/pam_motd.8.xml
-@@ -114,6 +114,17 @@
+@@ -115,6 +115,17 @@
</para>
</listitem>
</varlistentry>
@@ -100,7 +100,7 @@ Index: pam/modules/pam_motd/README
===================================================================
--- pam.orig/modules/pam_motd/README
+++ pam/modules/pam_motd/README
-@@ -51,6 +51,10 @@
+@@ -52,6 +52,10 @@
colon-separated list. By default this option is set to /etc/motd.d:/run/
motd.d:/usr/lib/motd.d.
diff --git a/debian/po/ro.po b/debian/po/ro.po
index be2b7bc7..2752ae40 100644
--- a/debian/po/ro.po
+++ b/debian/po/ro.po
@@ -10,8 +10,8 @@ msgstr ""
"Project-Id-Version: pam 1.0.1-7\n"
"Report-Msgid-Bugs-To: pam@packages.debian.org\n"
"POT-Creation-Date: 2021-02-26 10:32-0500\n"
-"PO-Revision-Date: 2011-03-29 13:01-0700\n"
-"Last-Translator: Eddy Petrișor <eddy.petrisor@gmail.com>\n"
+"PO-Revision-Date: 2021-04-05 16:44+0300\n"
+"Last-Translator: Andrei POPESCU <andreimpopescu@gmail.com>\n"
"Language-Team: Romanian <debian-l10n-romanian@lists.debian.org>\n"
"Language: ro\n"
"MIME-Version: 1.0\n"
@@ -30,21 +30,14 @@ msgstr "Serviciile repornite la actualizarea bibliotecii PAM:"
#. Type: string
#. Description
#: ../libpam0g.templates:1001
-#, fuzzy
-#| msgid ""
-#| "Most services that use PAM need to be restarted to use modules built for "
-#| "this new version of libpam. Please review the following space-separated "
-#| "list of init.d scripts for services to be restarted now, and correct it "
-#| "if needed."
msgid ""
"Most services that use PAM need to be restarted to use modules built for "
"this new version of libpam. Please review the following space-separated "
"list of services to be restarted now, and correct it if needed."
msgstr ""
"Majoritatea serviciilor ce folosesc PAM trebuie repornite pentru a folosi "
-"modulele pentru noua versiune de libpam. Următoarea listă folosește ca "
-"separator spațiul și conține script-uri init.d care urmează să fie repornite "
-"acum; verificați-o și corectați-o, dacă este necesar."
+"modulele pentru noua versiune de libpam. Verificați și ajustați după caz "
+"lista următoare (separată prin spațiu) cu servicii care trebuie repornite."
#. Type: error
#. Description
@@ -97,6 +90,7 @@ msgstr ""
#: ../libpam0g.templates:4001
msgid "Restart services during package upgrades without asking?"
msgstr ""
+"Să se repornească serviciile fără confirmare în timpul unei actualizări?"
#. Type: boolean
#. Description
@@ -110,12 +104,19 @@ msgid ""
"necessary restarts will be done for you automatically so you can avoid being "
"asked questions on each library upgrade."
msgstr ""
+"Pe acest sistem sunt instalate servicii care trebuie repornite atunci când "
+"anumite biblioteci, cum ar fi libpam, libc și libssl sunt actualizate. "
+"Deoarece aceste reporniri pot cauza întreruperi în furnizarea serviciului în "
+"mod normal se solicită confirmarea listei de servicii pe care doriți să le "
+"reporniți la fiecare actualizare. Puteți alege această opțiune pentru a "
+"evita confirmarea. În schimb toate repornirile necesare vor fi executate "
+"automat pentru a evita întrebările la fiecare actualizare de biblioteci."
#. Type: title
#. Description
#: ../libpam-runtime.templates:1001
msgid "PAM configuration"
-msgstr ""
+msgstr "Configurarea PAM"
#. Type: multiselect
#. Description
@@ -193,10 +194,8 @@ msgstr ""
#. Type: error
#. Description
#: ../libpam-runtime.templates:5001
-#, fuzzy
-#| msgid "Incompatible PAM profiles selected."
msgid "No PAM profiles have been selected."
-msgstr "Selecție de profile PAM incompatibile."
+msgstr "Nu au fost selectate profile PAM."
#. Type: error
#. Description
@@ -206,6 +205,9 @@ msgid ""
"all users access without authenticating, and is not allowed. Please select "
"at least one PAM profile from the available list."
msgstr ""
+"Nu a fost ales nici un profil PAM pentru a fi folosit pe acest sistem. Acest "
+"lucru ar permite tuturor utilizatorilor accesul fără autentificare, ceea ce "
+"nu este permis. Selectați cel puțin un profil PAM din lista disponibilă."
#. Type: error
#. Description
@@ -235,7 +237,7 @@ msgstr ""
#. Description
#: ../libpam-modules.templates:2001
msgid "PAM Profiles with Deprecated Modules Disabled"
-msgstr ""
+msgstr "Profilele PAM cu module învechite au fost dezactivate"
#. Type: error
#. Description
@@ -246,12 +248,16 @@ msgid ""
"prevent users from accessing your system. As a result, these profiles have "
"been disabled."
msgstr ""
+"Acest sistem are profile PAM activate cu modulele PAM ${modules}. Aceste "
+"module au fost scoase din PAM. Păstrarea acestor profile PAM activate ar "
+"împiedica accesul utilizatorilor la sistem. În consecință aceste profile au "
+"fost dezactivate."
#. Type: error
#. Description
#: ../libpam-modules.templates:3001
msgid "you are using pam_tally or pam_tally2 in your configuration"
-msgstr ""
+msgstr "folosiți pam_tally sau pam_tally2"
#. Type: error
#. Description
@@ -263,9 +269,14 @@ msgid ""
"modules in your PAM configuration after the upgrade will stop users from "
"being able to log into the system."
msgstr ""
+"Modulele pam_tally și pam_tally2 au fost scoase din PAM. Acum utilizați unul "
+"din aceste module în configurația PAM din /etc/pam.d. Înainde de a putea "
+"actualiza PAM utilizarea acestor module trebuie oprită. Includerea acestor "
+"module după actualizare în configurația PAM va împiedica accesul "
+"utilizatorilor la sistem."
#. Type: error
#. Description
#: ../libpam-modules.templates:3001
msgid "Consider the pam_faillock module as a replacement for pam_tally."
-msgstr ""
+msgstr "Modulul pam_faillock are putea fi un înlocuitor pentru pam_tally."
diff --git a/debian/rules b/debian/rules
index aab52a3a..73b3ffea 100755
--- a/debian/rules
+++ b/debian/rules
@@ -30,7 +30,6 @@ override_dh_auto_configure:
dh_auto_configure -- --enable-static --enable-shared \
--libdir=/lib/$(DEB_HOST_MULTIARCH) \
--enable-isadir=/lib/security \
- --enable-cracklib \
--disable-nis \
$(CONFIGURE_OPTS)
@@ -38,10 +37,7 @@ override_dh_auto_configure:
# our module that doesn't match right here
override_dh_install:
sed -e"s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g" $(d)/libpam0g-dev.install.in > $(d)/libpam0g-dev.install
-ifneq (,$(findstring libpam-modules, $(shell dh_listpackages)))
- dh_install -plibpam-modules -Xpam_cracklib
-endif
- dh_install -Nlibpam-modules
+ dh_install
# Make sure the md5sums for the templates we ship are
# recognized by pam-auth-update.
for f in common-auth common-session common-session-noninteractive common-account common-password; do \
@@ -62,7 +58,6 @@ override_dh_installman:
pod2man --section 8 --release="Debian GNU/Linux" $(dl)/pam_getenv >$(dl)/pam_getenv.8
dh_installman
rm -f $(d)/libpam-modules/usr/share/man/man5/pam.conf.5
- rm -f $(d)/libpam-modules/usr/share/man/man8/pam_cracklib.8
rm -f $(d)/libpam-modules/usr/share/man/man8/pam_timestamp_check.8
# dh_link doesn't do wildcards, so we can't auto-link to the right per-arch
diff --git a/debian/source.lintian-overrides b/debian/source.lintian-overrides
index 037bfc61..85133c70 100644
--- a/debian/source.lintian-overrides
+++ b/debian/source.lintian-overrides
@@ -1,3 +1,2 @@
pam source: dh-quilt-addon-but-quilt-source-format
-pam source: build-depends-on-1-revision build-depends: quilt (>= 0.48-1)
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 64e09979..ff0b3159 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -94,18 +94,21 @@ build_triplet = @build@
host_triplet = @host@
subdir = doc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/japhar_grep_cflags.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \
+ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/intlmacosx.m4 \
$(top_srcdir)/m4/jh_path_xml_catalog.m4 \
$(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \
- $(top_srcdir)/m4/ld-no-undefined.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/ld-no-undefined.m4 \
+ $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/warn_lang_flags.m4 \
+ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(dist_html_DATA) \
@@ -243,6 +246,9 @@ CC_FOR_BUILD = @CC_FOR_BUILD@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CRYPTO_LIBS = @CRYPTO_LIBS@
+CRYPT_CFLAGS = @CRYPT_CFLAGS@
+CRYPT_LIBS = @CRYPT_LIBS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
@@ -256,6 +262,8 @@ ECONF_CFLAGS = @ECONF_CFLAGS@
ECONF_LIBS = @ECONF_LIBS@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
+EXE_CFLAGS = @EXE_CFLAGS@
+EXE_LDFLAGS = @EXE_LDFLAGS@
FGREP = @FGREP@
FO2PDF = @FO2PDF@
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
@@ -275,7 +283,6 @@ LEX = @LEX@
LEXLIB = @LEXLIB@
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
LIBAUDIT = @LIBAUDIT@
-LIBCRACK = @LIBCRACK@
LIBCRYPT = @LIBCRYPT@
LIBDB = @LIBDB@
LIBDL = @LIBDL@
@@ -322,8 +329,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PIE_CFLAGS = @PIE_CFLAGS@
-PIE_LDFLAGS = @PIE_LDFLAGS@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -334,6 +339,7 @@ SECUREDIR = @SECUREDIR@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+STRINGPARAM_HMAC = @STRINGPARAM_HMAC@
STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@
STRIP = @STRIP@
TIRPC_CFLAGS = @TIRPC_CFLAGS@
@@ -383,7 +389,6 @@ htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
-libc_cv_fpie = @libc_cv_fpie@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
@@ -391,9 +396,6 @@ localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
-pam_cv_ld_O1 = @pam_cv_ld_O1@
-pam_cv_ld_as_needed = @pam_cv_ld_as_needed@
-pam_cv_ld_no_undefined = @pam_cv_ld_no_undefined@
pam_xauth_path = @pam_xauth_path@
pdfdir = @pdfdir@
prefix = @prefix@
@@ -403,6 +405,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+systemdunitdir = @systemdunitdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
diff --git a/doc/adg/Makefile.in b/doc/adg/Makefile.in
index 187b1372..194c8a05 100644
--- a/doc/adg/Makefile.in
+++ b/doc/adg/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -93,18 +93,21 @@ build_triplet = @build@
host_triplet = @host@
subdir = doc/adg
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/japhar_grep_cflags.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \
+ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/intlmacosx.m4 \
$(top_srcdir)/m4/jh_path_xml_catalog.m4 \
$(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \
- $(top_srcdir)/m4/ld-no-undefined.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/ld-no-undefined.m4 \
+ $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/warn_lang_flags.m4 \
+ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -152,6 +155,9 @@ CC_FOR_BUILD = @CC_FOR_BUILD@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CRYPTO_LIBS = @CRYPTO_LIBS@
+CRYPT_CFLAGS = @CRYPT_CFLAGS@
+CRYPT_LIBS = @CRYPT_LIBS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
@@ -165,6 +171,8 @@ ECONF_CFLAGS = @ECONF_CFLAGS@
ECONF_LIBS = @ECONF_LIBS@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
+EXE_CFLAGS = @EXE_CFLAGS@
+EXE_LDFLAGS = @EXE_LDFLAGS@
FGREP = @FGREP@
FO2PDF = @FO2PDF@
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
@@ -184,7 +192,6 @@ LEX = @LEX@
LEXLIB = @LEXLIB@
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
LIBAUDIT = @LIBAUDIT@
-LIBCRACK = @LIBCRACK@
LIBCRYPT = @LIBCRYPT@
LIBDB = @LIBDB@
LIBDL = @LIBDL@
@@ -231,8 +238,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PIE_CFLAGS = @PIE_CFLAGS@
-PIE_LDFLAGS = @PIE_LDFLAGS@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -243,6 +248,7 @@ SECUREDIR = @SECUREDIR@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+STRINGPARAM_HMAC = @STRINGPARAM_HMAC@
STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@
STRIP = @STRIP@
TIRPC_CFLAGS = @TIRPC_CFLAGS@
@@ -292,7 +298,6 @@ htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
-libc_cv_fpie = @libc_cv_fpie@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
@@ -300,9 +305,6 @@ localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
-pam_cv_ld_O1 = @pam_cv_ld_O1@
-pam_cv_ld_as_needed = @pam_cv_ld_as_needed@
-pam_cv_ld_no_undefined = @pam_cv_ld_no_undefined@
pam_xauth_path = @pam_xauth_path@
pdfdir = @pdfdir@
prefix = @prefix@
@@ -312,6 +314,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+systemdunitdir = @systemdunitdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
diff --git a/doc/custom-man.xsl b/doc/custom-man.xsl
index 4c35e839..a3408e6c 100644
--- a/doc/custom-man.xsl
+++ b/doc/custom-man.xsl
@@ -1,6 +1,6 @@
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0" version="1.0">
- <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"/>
+ <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/manpages/profile-docbook.xsl"/>
<xsl:param name="vendordir"/>
<xsl:param name="man.string.subst.map.local.pre">
diff --git a/doc/man/Makefile.in b/doc/man/Makefile.in
index 669a5ed7..42fd8d0c 100644
--- a/doc/man/Makefile.in
+++ b/doc/man/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -93,18 +93,21 @@ build_triplet = @build@
host_triplet = @host@
subdir = doc/man
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
- $(top_srcdir)/m4/japhar_grep_cflags.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \
+ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/intlmacosx.m4 \
$(top_srcdir)/m4/jh_path_xml_catalog.m4 \
$(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \
- $(top_srcdir)/m4/ld-no-undefined.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/ld-no-undefined.m4 \
+ $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/warn_lang_flags.m4 \
+ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -186,6 +189,9 @@ CC_FOR_BUILD = @CC_FOR_BUILD@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CRYPTO_LIBS = @CRYPTO_LIBS@
+CRYPT_CFLAGS = @CRYPT_CFLAGS@
+CRYPT_LIBS = @CRYPT_LIBS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
@@ -199,6 +205,8 @@ ECONF_CFLAGS = @ECONF_CFLAGS@
ECONF_LIBS = @ECONF_LIBS@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
+EXE_CFLAGS = @EXE_CFLAGS@
+EXE_LDFLAGS = @EXE_LDFLAGS@
FGREP = @FGREP@
FO2PDF = @FO2PDF@
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
@@ -218,7 +226,6 @@ LEX = @LEX@
LEXLIB = @LEXLIB@
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
LIBAUDIT = @LIBAUDIT@
-LIBCRACK = @LIBCRACK@
LIBCRYPT = @LIBCRYPT@
LIBDB = @LIBDB@
LIBDL = @LIBDL@
@@ -265,8 +272,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PIE_CFLAGS = @PIE_CFLAGS@
-PIE_LDFLAGS = @PIE_LDFLAGS@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -277,6 +282,7 @@ SECUREDIR = @SECUREDIR@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
+STRINGPARAM_HMAC = @STRINGPARAM_HMAC@
STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@
STRIP = @STRIP@
TIRPC_CFLAGS = @TIRPC_CFLAGS@
@@ -326,7 +332,6 @@ htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
-libc_cv_fpie = @libc_cv_fpie@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
@@ -334,9 +339,6 @@ localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
-pam_cv_ld_O1 = @pam_cv_ld_O1@
-pam_cv_ld_as_needed = @pam_cv_ld_as_needed@
-pam_cv_ld_no_undefined = @pam_cv_ld_no_undefined@
pam_xauth_path = @pam_xauth_path@
pdfdir = @pdfdir@
prefix = @prefix@
@@ -346,6 +348,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+systemdunitdir = @systemdunitdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
diff --git a/doc/man/PAM.8 b/doc/man/PAM.8
index c133f44b..da3a5d6c 100644
--- a/doc/man/PAM.8
+++ b/doc/man/PAM.8
@@ -2,12 +2,12 @@
.\" Title: pam
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 06/08/2020
+.\" Date: 09/03/2021
.\" Manual: Linux-PAM Manual
.\" Source: Linux-PAM Manual
.\" Language: English
.\"
-.TH "PAM" "8" "06/08/2020" "Linux-PAM Manual" "Linux-PAM Manual"
+.TH "PAM" "8" "09/03/2021" "Linux-PAM Manual" "Linux-PAM Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/man/misc_conv.3 b/doc/man/misc_conv.3
index b3cc86fd..8049e57a 100644
--- a/doc/man/misc_conv.3
+++ b/doc/man/misc_conv.3
@@ -2,12 +2,12 @@
.\" Title: misc_conv
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 06/08/2020
+.\" Date: 09/03/2021
.\" Manual: Linux-PAM Manual
.\" Source: Linux-PAM Manual
.\" Language: English
.\"
-.TH "MISC_CONV" "3" "06/08/2020" "Linux-PAM Manual" "Linux-PAM Manual"
+.TH "MISC_CONV" "3" "09/03/2021" "Linux-PAM Manual" "Linux-PAM Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/man/pam.3 b/doc/man/pam.3
index 1ec589b3..63f3e768 100644
--- a/doc/man/pam.3
+++ b/doc/man/pam.3
@@ -2,12 +2,12 @@
.\" Title: pam
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 06/08/2020
+.\" Date: 09/03/2021
.\" Manual: Linux-PAM Manual
.\" Source: Linux-PAM Manual
.\" Language: English
.\"
-.TH "PAM" "3" "06/08/2020" "Linux-PAM Manual" "Linux-PAM Manual"
+.TH "PAM" "3" "09/03/2021" "Linux-PAM Manual" "Linux-PAM Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/man/pam.conf-syntax.xml b/doc/man/pam.conf-syntax.xml
index 7b4edbf2..5112f930 100644
--- a/doc/man/pam.conf-syntax.xml
+++ b/doc/man/pam.conf-syntax.xml
@@ -265,7 +265,8 @@
this action indicates that the return code should be thought
of as indicative of the module failing. If this module is the
first in the stack to fail, its status value will be used for
- that of the whole stack.
+ that of the whole stack. This is the default action for
+ all return codes.
</para>
</listitem>
</varlistentry>
@@ -273,8 +274,9 @@
<term>die</term>
<listitem>
<para>
- equivalent to bad with the side effect of terminating the
- module stack and PAM immediately returning to the application.
+ equivalent to <emphasis>bad</emphasis> with the side effect of
+ terminating the module stack and PAM immediately returning to
+ the application.
</para>
</listitem>
</varlistentry>
@@ -297,8 +299,9 @@
<term>done</term>
<listitem>
<para>
- equivalent to ok with the side effect of terminating the module
- stack and PAM immediately returning to the application.
+ equivalent to <emphasis>ok</emphasis> with the side effect of
+ terminating the module stack and PAM immediately returning to the
+ application unless there was a non-ignored module failure before.
</para>
</listitem>
</varlistentry>
@@ -334,6 +337,13 @@
</variablelist>
<para>
+ If a return code's action is not specifically defined via a
+ <emphasis>valueN</emphasis> token, and the
+ <emphasis>default</emphasis> value is not specified, that return
+ code's action defaults to <emphasis>bad</emphasis>.
+ </para>
+
+ <para>
Each of the four keywords: required; requisite; sufficient; and
optional, have an equivalent expression in terms of the [...]
syntax. They are as follows:
diff --git a/doc/man/pam.conf.5 b/doc/man/pam.conf.5
index e38b425c..703bcf60 100644
--- a/doc/man/pam.conf.5
+++ b/doc/man/pam.conf.5
@@ -2,12 +2,12 @@
.\" Title: pam.conf
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 06/08/2020
+.\" Date: 09/03/2021
.\" Manual: Linux-PAM Manual
.\" Source: Linux-PAM Manual
.\" Language: English
.\"
-.TH "PAM\&.CONF" "5" "06/08/2020" "Linux-PAM Manual" "Linux-PAM Manual"
+.TH "PAM\&.CONF" "5" "09/03/2021" "Linux-PAM Manual" "Linux-PAM Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -234,12 +234,14 @@ when used with a stack of modules, the module\*(Aqs return status will not contr
.PP
bad
.RS 4
-this action indicates that the return code should be thought of as indicative of the module failing\&. If this module is the first in the stack to fail, its status value will be used for that of the whole stack\&.
+this action indicates that the return code should be thought of as indicative of the module failing\&. If this module is the first in the stack to fail, its status value will be used for that of the whole stack\&. This is the default action for all return codes\&.
.RE
.PP
die
.RS 4
-equivalent to bad with the side effect of terminating the module stack and PAM immediately returning to the application\&.
+equivalent to
+\fIbad\fR
+with the side effect of terminating the module stack and PAM immediately returning to the application\&.
.RE
.PP
ok
@@ -250,7 +252,9 @@ this tells PAM that the administrator thinks this return code should contribute
.PP
done
.RS 4
-equivalent to ok with the side effect of terminating the module stack and PAM immediately returning to the application\&.
+equivalent to
+\fIok\fR
+with the side effect of terminating the module stack and PAM immediately returning to the application unless there was a non\-ignored module failure before\&.
.RE
.PP
N (an unsigned integer)
@@ -279,6 +283,13 @@ reset
clear all memory of the state of the module stack and start again with the next stacked module\&.
.RE
.PP
+If a return code\*(Aqs action is not specifically defined via a
+\fIvalueN\fR
+token, and the
+\fIdefault\fR
+value is not specified, that return code\*(Aqs action defaults to
+\fIbad\fR\&.
+.PP
Each of the four keywords: required; requisite; sufficient; and optional, have an equivalent expression in terms of the [\&.\&.\&.] syntax\&. They are as follows:
.PP
required
diff --git a/doc/man/pam_acct_mgmt.3 b/doc/man/pam_acct_mgmt.3
index 8e14431f..1d95505f 100644
--- a/doc/man/pam_acct_mgmt.3
+++ b/doc/man/pam_acct_mgmt.3
@@ -2,12 +2,12 @@
.\" Title: pam_acct_mgmt
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 06/08/2020
+.\" Date: 09/03/2021
.\" Manual: Linux-PAM Manual
.\" Source: Linux-PAM Manual
.\" Language: English
.\"
-.TH "PAM_ACCT_MGMT" "3" "06/08/2020" "Linux-PAM Manual" "Linux-PAM Manual"
+.TH "PAM_ACCT_MGMT" "3" "09/03/2021" "Linux-PAM Manual" "Linux-PAM Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/man/pam_authenticate.3 b/doc/man/pam_authenticate.3
index b49c0c70..e3257bfb 100644
--- a/doc/man/pam_authenticate.3
+++ b/doc/man/pam_authenticate.3
@@ -2,12 +2,12 @@
.\" Title: pam_authenticate
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 06/08/2020
+.\" Date: 09/03/2021
.\" Manual: Linux-PAM Manual
.\" Source: Linux-PAM Manual
.\" Language: English
.\"
-.TH "PAM_AUTHENTICATE" "3" "06/08/2020" "Linux-PAM Manual" "Linux-PAM Manual"
+.TH "PAM_AUTHENTICATE" "3" "09/03/2021" "Linux-PAM Manual" "Linux-PAM Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/man/pam_chauthtok.3 b/doc/man/pam_chauthtok.3
index f4ff84f6..d2e0b460 100644
--- a/doc/man/pam_chauthtok.3
+++ b/doc/man/pam_chauthtok.3
@@ -2,12 +2,12 @@
.\" Title: pam_chauthtok
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 06/08/2020
+.\" Date: 09/03/2021
.\" Manual: Linux-PAM Manual
.\" Source: Linux-PAM Manual
.\" Language: English
.\"
-.TH "PAM_CHAUTHTOK" "3" "06/08/2020" "Linux-PAM Manual" "Linux-PAM Manual"
+.TH "PAM_CHAUTHTOK" "3" "09/03/2021" "Linux-PAM Manual" "Linux-PAM Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/man/pam_close_session.3 b/doc/man/pam_close_session.3
index 8a6f8d1c..3a7d56b8 100644
--- a/doc/man/pam_close_session.3
+++ b/doc/man/pam_close_session.3
@@ -2,12 +2,12 @@
.\" Title: pam_close_session
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 06/08/2020
+.\" Date: 09/03/2021
.\" Manual: Linux-PAM Manual
.\" Source: Linux-PAM Manual
.\" Language: English
.\"
-.TH "PAM_CLOSE_SESSION" "3" "06/08/2020" "Linux-PAM Manual" "Linux-PAM Manual"
+.TH "PAM_CLOSE_SESSION" "3" "09/03/2021" "Linux-PAM Manual" "Linux-PAM Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/doc/man/pam_conv.3 b/doc/man/pam_conv.3
index 181604e2..5f65b2e9 100644
--- a/do