summary refs log tree commit diff
diff options
context:
space:
mode:
authorBjørn Forsman <bjorn.forsman@gmail.com>2017-01-01 16:44:32 +0100
committerBjørn Forsman <bjorn.forsman@gmail.com>2017-01-02 19:14:06 +0100
commitcb9195b7bcde7ec8a2d5fa99df0a93afacd5c537 (patch)
tree6a6f3698c34bc92aacf816442fae1ce44420416c
parent49d444416cf88dad03da0ec71573cd9747245581 (diff)
downloadnixlib-cb9195b7bcde7ec8a2d5fa99df0a93afacd5c537.tar
nixlib-cb9195b7bcde7ec8a2d5fa99df0a93afacd5c537.tar.gz
nixlib-cb9195b7bcde7ec8a2d5fa99df0a93afacd5c537.tar.bz2
nixlib-cb9195b7bcde7ec8a2d5fa99df0a93afacd5c537.tar.lz
nixlib-cb9195b7bcde7ec8a2d5fa99df0a93afacd5c537.tar.xz
nixlib-cb9195b7bcde7ec8a2d5fa99df0a93afacd5c537.tar.zst
nixlib-cb9195b7bcde7ec8a2d5fa99df0a93afacd5c537.zip
nixos: provide /etc/hostname
/etc/hostname is the file used by hostnamectl(1) and the
org.freedesktop.hostname1 dbus service (both provided by systemd) to get
the "static hostname". Better provide it so that users of those
tools/services get a proper hostname.

An example of an issue created by the lack of /etc/hostname is that the
bluetooth stack on NixOS identifies itself to peers as "BlueZ $VERSION"
instead of the hostname.

References:
https://www.freedesktop.org/software/systemd/man/hostname.html

Changes v1 -> v2:
  * ensure /etc/hostname ends with a newline
-rw-r--r--nixos/modules/tasks/network-interfaces.nix7
1 files changed, 7 insertions, 0 deletions
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index 74f7e5fcc2c3..83d9854d3517 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -921,6 +921,13 @@ in
         '';
       };
 
+    # static hostname configuration needed for hostnamectl and the
+    # org.freedesktop.hostname1 dbus service (both provided by systemd)
+    environment.etc."hostname" = mkIf (cfg.hostName != "")
+      {
+        text = cfg.hostName + "\n";
+      };
+
     environment.systemPackages =
       [ pkgs.host
         pkgs.iproute