guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#60735] [PATCH v2 2/3] system: Deprecate hosts-file.


From: Ludovic Courtès
Subject: [bug#60735] [PATCH v2 2/3] system: Deprecate hosts-file.
Date: Tue, 24 Jan 2023 09:53:37 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)

Hi Bruno!

Bruno Victal <mirai@makinata.eu> skribis:

> On 2023-01-23 22:37, Ludovic Courtès wrote:
>> Bruno Victal <mirai@makinata.eu> skribis:
>> 
>>> ---
>>>
>>> WIP, the ganeti tests fail because host-name is added as an alias of 
>>> localhost.
>> 
>> Before these patches, ‘host-name’ was already an alias of ‘localhost’.
>> Is there something else interfering?
>
> In some cases, it's not desired for host-name to be an alias of localhost.
> The ganeti tests did this by passing a hosts-file file-like object where
> host-name wasn't an alias of localhost.

Oh, I see.

> I've brainstormed a bit on this and here's what I thought:
>
> Approach 1 (DOESN'T WORK):
> * hosts-service-type in essential-services (gnu/systems.scm), default value:
>       127.0.0.1  localhost
>       ::1  localhost
> * simple-service extension on base-services (gnu/services/base.scm):
>       \\FLOPS since both /etc/hosts and /etc/hostname are provisioned with 
> activation-service-type.
>       This means we can't write /etc/hosts AFTER /etc/hostname or 
> host-name-service-type is ready.
>
> Approach 2:
> * NO /etc/hosts in essential-services (is this possible?)
>       * is an absent /etc/hosts (or absent %base-services) a valid OS?
> * Value set in %base-services, hosts-service-type as a ONE-SHOT shepherd 
> service.
>       * Can be changed with modify-services.
>       * It's a one-shot shepherd service since we're depending on 
> /etc/hostname which is activation-service-type. (we're depending on either 
> etc-service-type or host-name-service-type)
>
> Approach 3:
> * Do not set our hostname as an alias of localhost by default.
>       * Manpage doesn't seem to make this mandatory, in fact, our hostname 
> can point to any IP. (it says 'often', not 'mandatory')
>       * We only set localhost name.
>               * Is this mandatory? If not, there might be cases where this 
> entry is undesired.

Wait, why don’t we keep ‘hosts-service-type’ in ‘essential-services’,
with the localhost/host-name alias, and have ‘%ganeti-os’ in (gnu tests
ganeti) modify its essential services to get what it wants?  As in:

  (operating-system
    ;; …
    (essential-services
      (modify-services (operation-system-default-essential-services 
this-operating-system)
        (hosts-service-type config => …))))

Granted, that’s a bit verbose :-), but it should do the job just like
setting ‘hosts-file’ currently in ‘master’, no?

>> It doesn’t matter because it’s removed in the commit that follows I
>> think using ‘string-tokenize’ instead of ‘string-split’ may bring
>> simplifications.
>
> It was added because otherwise the "split" commits would seem to be missing 
> some context.
> I can leave it as is, delete it here or try your suggestion.

Yeah leave it as is.

>>> +  #:use-module (guix discovery)
>> 
>> Do we really need this module?
>
> IIRC this was for the deprecated procedures to work. Can they work without 
> this module?

Yes, ‘define-deprecated’ is defined in (guix deprecation).

Thanks!

Ludo’.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]