Without the change `waf configure` hung on `i686Linux.samba` on systems
with large amount of host CPUs (for me it's 16).
This happens because one of the worker processes gets `-ENOMEM` and does
not recover from it:
2084476 mmap2(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = -1 ENOMEM (Cannot allocate memory)
2084476 munmap(0xf2b5c000, 16384) = 0
2084476 rt_sigprocmask(SIG_BLOCK, ~[RT_1], NULL, 8) = 0
2084476 madvise(0x1ff000, 8372224, MADV_DONTNEED) = 0
2084476 exit(0) = ?
2084476 +++ exited with 0 +++
THe change extends 32-bit arm workaround to limit to one thread to all
32-bit systems.
This commit addresses the following issues:
- samba-tool requiring python built with libxcrypt-legacy
- adding the missing markdown python package
- fixing the shebang patching so disallowedReferences passes
Makes samba use the nix vendored `talloc` instead of compiling its own,
bundleded version. This fixes an issue where the library may be initialized
with different magic numbers, resulting in segfaults. See in
https://github.com/NixOS/nixpkgs/issues/205859 for further detail.
The last update mistakenly removed wafHook and the patch required to make cross-
compilation work. In addition, the bundled version of heimdal is now too new to
work with asn1_compile from the heimdal package in nixpkgs (it isn't out of
date, there just hasn't been a release in years and samba uses an unreleased
version).
To fix the latter issue, the native build of samba saves asn1_compile and
compile_et from the bundled heimdal into the dev output, allowing them to be
available at build time when cross-compiling.
add disallowedReferences to prevent future regressions
buildPackages.python3Packages.python.intepreter will be python3.10 while
the one in shebang is python3
had to move the substituting to after wrapPythonPrograms because the
wrapper contained build python so something weird is going on
continuation of #109595
pkgconfig was aliased in 2018, however, it remained in
all-packages.nix due to its wide usage. This cleans
up the remaining references to pkgs.pkgsconfig and
moves the entry to aliases.nix.
python3Packages.pkgconfig remained unchanged because
it's the canonical name of the upstream package
on pypi.