diff options
author | Carl Dong <contact@carldong.me> | 2021-04-16 16:49:09 -0400 |
---|---|---|
committer | Carl Dong <contact@carldong.me> | 2021-07-08 11:28:07 -0400 |
commit | 263220a85c1df218431fafbda07c8b23ccc4ce4d (patch) | |
tree | 41d97abc4adf0db71e9b8ad1efa25bc096c5d967 | |
parent | 4129134e844f78a89f8515cf30dad4b6074703c7 (diff) |
guix: Check for a sane services database
On bare systems, it is possible to be lacking a services database. Check
for basic entries before attempting a build.
See the error message in the diff for more context.
-rwxr-xr-x | contrib/guix/guix-build | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/contrib/guix/guix-build b/contrib/guix/guix-build index 29d6701b25..ddfc8c83cb 100755 --- a/contrib/guix/guix-build +++ b/contrib/guix/guix-build @@ -18,7 +18,7 @@ source "$(dirname "${BASH_SOURCE[0]}")/libexec/prelude.bash" # Required non-builtin commands should be invocable ################ -check_tools cat mkdir make git guix +check_tools cat mkdir make getent git guix ################ # GUIX_BUILD_OPTIONS should be empty @@ -186,6 +186,29 @@ fi # # However, the internal API is likely to change more than the CLI invocation +################ +# Services database must have basic entries +################ + +if ! getent services http https ftp; then +cat << EOF +ERR: Your system's C library can not find service database entries for at least + one of the following services: http, https, ftp. + +Hint: Most likely, /etc/services does not exist yet (common for docker images + and minimal distros), or you don't have permissions to access it. + + If /etc/services does not exist yet, you may want to install the + appropriate package for your distro which provides it. + + On Debian/Ubuntu: netbase + On Arch Linux: iana-etc + + For more information, see: getent(1), services(5) + +EOF + +fi ######### # SETUP # |