mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
firstboot: Include <crypt.h> for declaration of crypt() if needed (#7944)
Not every target system may provide a crypt() function in its stdlibc and may use an external or replacement library, like libxcrypt, for providing such functions. See https://fedoraproject.org/wiki/Changes/Replace_glibc_libcrypt_with_libxcrypt.
This commit is contained in:
parent
16c73c765d
commit
9f555bba67
@ -589,7 +589,8 @@ conf.set('GPERF_LEN_TYPE', gperf_len_type,
|
||||
if not cc.has_header('sys/capability.h')
|
||||
error('POSIX caps headers not found')
|
||||
endif
|
||||
foreach header : ['linux/btrfs.h',
|
||||
foreach header : ['crypt.h',
|
||||
'linux/btrfs.h',
|
||||
'linux/memfd.h',
|
||||
'linux/vm_sockets.h',
|
||||
'sys/auxv.h',
|
||||
|
@ -23,6 +23,19 @@
|
||||
#include <shadow.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifdef HAVE_CRYPT_H
|
||||
/* libxcrypt is a replacement for glibc's libcrypt, and libcrypt might be
|
||||
* removed from glibc at some point. As part of the removal, defines for
|
||||
* crypt(3) are dropped from unistd.h, and we must include crypt.h instead.
|
||||
*
|
||||
* Newer versions of glibc (v2.0+) already ship crypt.h with a definition
|
||||
* of crypt(3) as well, so we simply include it if it is present. MariaDB,
|
||||
* MySQL, PostgreSQL, Perl and some other wide-spread packages do it the
|
||||
* same way since ages without any problems.
|
||||
*/
|
||||
# include <crypt.h>
|
||||
#endif
|
||||
|
||||
#include "sd-id128.h"
|
||||
|
||||
#include "alloc-util.h"
|
||||
|
Loading…
Reference in New Issue
Block a user