]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: don't fail if we don't need any external nss libs
authorFrantisek Sumsal <frantisek@sumsal.cz>
Tue, 6 Sep 2022 12:04:37 +0000 (14:04 +0200)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 6 Sep 2022 15:21:26 +0000 (00:21 +0900)
On certain systems the `install_libnss()` function might end up with an
empty list of libraries to install, which triggers an assertion in
`image_install()`:

```
I: Install libnss
..//test-functions: line 2721: 1: parameter null or not set
make: *** [Makefile:4: setup] Error 1
```

E.g.:
```
# LD_DEBUG=files getent passwd 2>&1 >/dev/null | sed -n '/calling init: .*libnss_/ {s!^.* /!/!; p}'
/lib64/libnss_sss.so.2
/lib64/libnss_systemd.so.2
# dnf -y remove sssd-client systemd-libs
# LD_DEBUG=files getent passwd 2>&1 >/dev/null | sed -n '/calling init: .*libnss_/ {s!^.* /!/!; p}'
<no output>
```

Let's handle this case gracefully.

test/test-functions

index 6215ec1cc64f5a22d1d8d8778ace6ada98eefe6f..b292f0e41bbd35d82f99e57ce1abd292fa9f98ea 100644 (file)
@@ -1823,7 +1823,9 @@ install_libnss() {
     # install libnss_files for login
     local NSS_LIBS
     mapfile -t NSS_LIBS < <(LD_DEBUG=files getent passwd 2>&1 >/dev/null | sed -n '/calling init: .*libnss_/ {s!^.* /!/!; p}')
-    image_install "${NSS_LIBS[@]}"
+    if [[ ${#NSS_LIBS[@]} -gt 0 ]]; then
+        image_install "${NSS_LIBS[@]}"
+    fi
 }
 
 install_dbus() {