diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index 519e83539d46..9085b1703c0a 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -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 \ diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix index 3078dd2dcab3..d6c107e99532 100644 --- a/pkgs/shells/fish/default.nix +++ b/pkgs/shells/fish/default.nix @@ -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 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 78860b3f0f0d..84fda4d63863 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 { };