define top-level attrs for getent, getconf
Note that currently getent is explicitly taken from "glibc.bin", regardless of build configuration which this preserves for now. (on non-musl anyway)
This commit is contained in:
parent
6c3df22c5a
commit
d3b59f864a
@ -7,18 +7,13 @@
|
||||
, autoreconfHook, gettext, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_45
|
||||
, ninja, meson, python3Packages, glibcLocales
|
||||
, patchelf
|
||||
, musl-getent ? null
|
||||
, getent
|
||||
}:
|
||||
|
||||
assert stdenv.isLinux;
|
||||
|
||||
let
|
||||
pythonLxmlEnv = python3Packages.python.withPackages ( ps: with ps; [ python3Packages.lxml ]);
|
||||
getent-bin =
|
||||
if stdenv.hostPlatform.libc == "glibc" then stdenv.cc.libc.bin
|
||||
else if stdenv.hostPlatform.isMusl then "${musl-getent}"
|
||||
else throw "unsupported abi for systemd";
|
||||
getent = "${getent-bin}/bin/getent";
|
||||
|
||||
in
|
||||
|
||||
@ -40,7 +35,7 @@ in
|
||||
ninja meson
|
||||
coreutils # meson calls date, stat etc.
|
||||
pythonLxmlEnv glibcLocales
|
||||
patchelf getent-bin
|
||||
patchelf getent
|
||||
];
|
||||
buildInputs =
|
||||
[ linuxHeaders libcap kmod xz pam acl
|
||||
@ -114,7 +109,7 @@ in
|
||||
for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.in src/journal/cat.c src/core/shutdown.c src/nspawn/nspawn.c src/shared/generator.c; do
|
||||
test -e $i
|
||||
substituteInPlace $i \
|
||||
--replace /usr/bin/getent ${getent} \
|
||||
--replace /usr/bin/getent ${getent}/bin/getent \
|
||||
--replace /sbin/swapon ${utillinux.bin}/sbin/swapon \
|
||||
--replace /sbin/swapoff ${utillinux.bin}/sbin/swapoff \
|
||||
--replace /sbin/fsck ${utillinux.bin}/sbin/fsck \
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchurl, coreutils, utillinux,
|
||||
nettools, kbd, bc, which, gnused, gnugrep,
|
||||
groff, man-db, glibc, musl-getent, libiconv, pcre2,
|
||||
groff, man-db, getent, libiconv, pcre2,
|
||||
gettext, ncurses, python3
|
||||
|
||||
, writeText
|
||||
@ -12,9 +12,6 @@
|
||||
with stdenv.lib;
|
||||
|
||||
let
|
||||
getent = if stdenv.hostPlatform.isMusl
|
||||
then "${musl-getent}/bin/getent"
|
||||
else "${glibc.bin}/bin/getent";
|
||||
etcConfigAppendixText = ''
|
||||
############### ↓ Nix hook for sourcing /etc/fish/config.fish ↓ ###############
|
||||
# #
|
||||
@ -145,7 +142,7 @@ let
|
||||
sed -e "s| ul| ${utillinux}/bin/ul|" \
|
||||
-i "$out/share/fish/functions/__fish_print_help.fish"
|
||||
for cur in $out/share/fish/functions/*.fish; do
|
||||
sed -e "s|/usr/bin/getent|${getent}|" \
|
||||
sed -e "s|/usr/bin/getent|${getent}/bin/getent|" \
|
||||
-i "$cur"
|
||||
done
|
||||
|
||||
|
@ -13361,6 +13361,14 @@ with pkgs;
|
||||
musl-fts = callPackage ../os-specific/linux/musl/fts.nix { };
|
||||
musl-getconf = callPackage ../os-specific/linux/musl/getconf.nix { };
|
||||
musl-getent = callPackage ../os-specific/linux/musl/getent.nix { };
|
||||
getent =
|
||||
if hostPlatform.isMusl then musl-getent
|
||||
# This may not be right on other platforms, but preserves existing behavior
|
||||
else /* if hostPlatform.libc == "glibc" then */ glibc.bin;
|
||||
getconf =
|
||||
if hostPlatform.isMusl then musl-getconf
|
||||
# This may not be right on other platforms, but preserves existing behavior
|
||||
else /* if hostPlatform.libc == "glibc" then */ glibc.bin;
|
||||
|
||||
nettools = callPackage ../os-specific/linux/net-tools { };
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user