According to [1], crypt() support in POSIX is optional, so include also <crypt.h> when _XOPEN_CRYPT is not defined or is defined to -1. Without this I can't build run_init from source out-of-the-box on Fedora 29. [1] http://man7.org/linux/man-pages/man3/crypt.3.html#NOTES Signed-off-by: Ondrej Mosnacek <omosnace@xxxxxxxxxx> --- policycoreutils/run_init/run_init.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/policycoreutils/run_init/run_init.c b/policycoreutils/run_init/run_init.c index 4bc32b1c..a007ce49 100644 --- a/policycoreutils/run_init/run_init.c +++ b/policycoreutils/run_init/run_init.c @@ -159,6 +159,14 @@ int authenticate_via_pam(const struct passwd *p_passwd_line) #include <shadow.h> /* for shadow passwd functions */ #include <string.h> /* for strlen(), memset() */ +/* + * crypt() may not be defined in unistd.h; see: + * http://man7.org/linux/man-pages/man3/crypt.3.html#NOTES + */ +#if !defined(_XOPEN_CRYPT) || _XOPEN_CRYPT == -1 +#include <crypt.h> +#endif + #define PASSWORD_PROMPT _("Password:") /* prompt for getpass() */ int authenticate_via_shadow_passwd(const struct passwd *); -- 2.20.1