aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Dong <contact@carldong.me>2021-04-16 16:49:09 -0400
committerCarl Dong <contact@carldong.me>2021-07-08 11:28:07 -0400
commit263220a85c1df218431fafbda07c8b23ccc4ce4d (patch)
tree41d97abc4adf0db71e9b8ad1efa25bc096c5d967
parent4129134e844f78a89f8515cf30dad4b6074703c7 (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-xcontrib/guix/guix-build25
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 #