Subject: Re: networkmanager hostname woes
From: Thomas Danckaert <[email-masked]>
To: [email-masked], [email-masked]
Cc: [email-masked]
Date: Sat, 16 Sep 2017 14:03:20 +0200 (CEST)
List-Id: <debbugs-submit.debbugs.gnu.org>

From: [email-masked] (Ludovic Courtès)
Subject: Re: networkmanager hostname woes
Date: Fri, 15 Sep 2017 22:34:44 +0200

> Thomas Danckaert <[email-masked]> skribis:
>
>> From: [email-masked] (Ludovic Courtès)
>> Subject: Re: networkmanager hostname woes
>> Date: Thu, 14 Sep 2017 10:17:08 +0200
>>
>>> I don’t understand the logic in there, but a quick fix would be 
>>> to have
>>> ‘network-manager-service-type’ create /etc/hostname.
>>>
>>> What do people think?
>>
>> I agree.  What is the best way to do that?
>>
>>  - make network-manager-service extend etc-service?  I think in 
>> this
>>    case we'd need to pass the host-name to
>>    network-manager-service-type somehow?  It feels strange to make 
>> the
>>    system config's host-name a configuration parameter of
>>    network-manager-service-type just for this reason.
>>
>>  - Create /etc/hosts in network-manager activation, using the 
>> result
>>    of ‘hostname’ at that point?
>>
>>  - ...?
>
> Hmm, good points.  Maybe just create /etc/hostname unconditionally 
> from
> ‘essential-services’?  It can’t hurt, right?

I don't think so, only for people committed to extreme minimalism.  
The attached patch fixes the issue on my system.  Will it do?

Thomas
From 76a461ff1540807d8beb98c298a8ea0165a6aaa4 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <[email-masked]>
Date: Sat, 16 Sep 2017 13:54:40 +0200
Subject: [PATCH] system: Create "/etc/hostname".

* gnu/system.scm (operating-system-etc-service): Add a plain-file with the
  operating-system-host-name.
---
 gnu/system.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/system.scm b/gnu/system.scm
index bb7e8531e..2ad4b3054 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -642,6 +642,7 @@ fi\n")))
        ("bashrc" ,#~#$bashrc)
        ("hosts" ,#~#$(or (operating-system-hosts-file os)
                          (default-/etc/hosts (operating-system-host-name os))))
+       ("hostname" ,(plain-file "hostname" (operating-system-host-name os)))
        ("localtime" ,(file-append tzdata "/share/zoneinfo/"
                                   (operating-system-timezone os)))
        ("sudoers" ,(operating-system-sudoers-file os))))))
-- 
2.14.1