[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#37388: <nginx-configuration> can lead to syntactically invalid confi
bug#37388: <nginx-configuration> can lead to syntactically invalid configs
Sat, 14 Sep 2019 14:26:27 +0200
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
Christopher Baines <address@hidden> skribis:
> Ludovic Courtès <address@hidden> writes:
>> It’s nice that we have <nginx-configuration> but I noticed that, unlike
>> most or all other configuration records that we have, it’s possible to
>> create an <nginx-configuration> record that leads to a syntactically
>> invalid nginx config file.
>> For example, if you have a location block like this:
>> (uri "/manual/")
>> (body (list "alias /srv/guix-manual")))
>> Guix will silently create an invalid nginx config file, which you’ll
>> only notice once you’ve reconfigured and nginx fails to start.
> I wonder if some errors could be caught at build time, before attempting
> to start the service.
> If in the derivation to build the configuration file, nginx is run
> against the built config file with -t, that might spot errors at
> derivation build time.
Yeah, this is probably doable.
I would consider it a stop-gap measure though. Fundamentally, I think
we should make it so that, by construction, invalid (or at least
syntactically-invalid) config files cannot be produced.
> An sexp representation sounds good, although I think records will work
> out better for the common and high level parts.
The way I see it, sexps and records could be almost indistinguishable
provided some appropriate macrology. But sexps are definitely easier to