Go to file
Romain Naour dd244feb37 package/openssh: add libxcrypt optional dependency for sshd
When glibc was bumped to version 2.39 in commit
b5680f53d6 it removed the deprecated
libcrypt support.

As glibc's libcrypt was providing sshd's libcrypt dependency this broke
the sshd password authentification at runtime using glibc version 2.39.

  # sshpass -p testpwd ssh -oStrictHostKeyChecking=no localhost /bin/true
  Permission denied, please try again.

Without libcrypt, OpenSSH >= 6.2 fall back to using openssl's DES_crypt
function on platorms that don't have a native crypt() function [1].

Note that DES_crypt is deprecated since openssl 3.0 [2] [3].

"Use of the low level DES functions has been informally discouraged for a
 long time. We now formally deprecate them.

 Applications should instead use the EVP APIs, e.g. EVP_EncryptInit_ex,
 EVP_EncryptUpdate, EVP_EncryptFinal_ex, and the equivalently named decrypt
 functions."

Also DES_crypt is provided by openssl only if
BR2_PACKAGE_LIBOPENSSL_ENABLE_DES is enabled. Otherwise crypt() is
never defined:

  sd-compat.a(xcrypt.o): in function `xcrypt':
  xcrypt.c:(.text+0x48): undefined reference to `crypt'

It's not clear why the password authentification fail with openssl's
DES_crypt but since it's deprecated we use libxcrypt to provide
a working crypt() function for glibc based toolchains.

[1] https://github.com/openssh/openssh-portable/blob/V_9_7/openbsd-compat/xcrypt.c#L57
[2] c6fec81b88
[3] https://www.openssl.org/docs/man3.2/man3/DES_crypt.html

Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/6623402147

Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-04-30 23:00:24 +02:00
.github .github: add a pull request warning that explains the mailing list workflow 2024-04-24 21:50:23 +02:00
arch arch: add support 16k page size on ARM64 2024-01-19 21:19:33 +01:00
board board/visionfive2: add spi-nor image 2024-04-28 20:19:14 +02:00
boot uboot/uboot: add new dependency to yamllint 2024-04-12 17:48:54 +02:00
configs configs/qemu_ppc64*defconfig: add missing libelf dependency 2024-04-30 22:56:55 +02:00
docs docs/manual: fix host-python-setuptools typo 2024-04-03 21:53:41 +02:00
fs Add BR2_ROOTFS_{PRE_BUILD|POST_{BUILD|FAKEROOT|IMAGE}}_SCRIPT_ARGS 2024-03-28 21:47:04 +01:00
linux {linux, linux-headers}: bump 4.19.x / 5.{4, 10, 15}.x / 6.{1, 6, 8}.x series 2024-04-28 20:12:55 +02:00
package package/openssh: add libxcrypt optional dependency for sshd 2024-04-30 23:00:24 +02:00
support support/testing: TestF2FS: update kernel to 4.19.310 2024-04-30 22:50:12 +02:00
system Add BR2_ROOTFS_{PRE_BUILD|POST_{BUILD|FAKEROOT|IMAGE}}_SCRIPT_ARGS 2024-03-28 21:47:04 +01:00
toolchain toolchain/external: remove libcrypt from glibc 2024-04-09 23:54:03 +02:00
utils utils/check-package: emit library name along with check function name 2024-04-01 20:52:26 +02:00
.checkpackageignore .checkpackageignore: regenerate for lvm2 patches 2024-04-02 22:09:27 +02:00
.clang-format .clang-format: initial import from Linux 5.15.6 2022-01-01 15:01:13 +01:00
.defconfig
.editorconfig editorconfig: fix wildcard expansion 2023-12-20 21:32:06 +01:00
.flake8 Revert ".flake8: fix check for 80/132 columns" 2021-01-02 17:38:20 +01:00
.gitignore
.gitlab-ci.yml support/misc/gitlab-ci.yml.in: retry a job only if it failed due to a runner issue 2023-08-27 10:09:37 +02:00
.shellcheckrc utils/check-package: improve shellcheck reproducibility 2022-07-25 23:52:47 +02:00
CHANGES Update for 2023.02.11 2024-03-27 10:33:36 +01:00
Config.in package/google-breakpad: needs C++17 2024-04-07 17:14:46 +02:00
Config.in.legacy package/linux-headers: drop 6.7.x option 2024-04-28 20:12:18 +02:00
COPYING
DEVELOPERS support/testing: add wine runtime test 2024-04-28 20:22:54 +02:00
Makefile Add BR2_ROOTFS_{PRE_BUILD|POST_{BUILD|FAKEROOT|IMAGE}}_SCRIPT_ARGS 2024-03-28 21:47:04 +01:00
Makefile.legacy
README docs: move the IRC channel away from Freenode 2021-05-29 22:16:23 +02:00

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on OFTC IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches