From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id SCZsOfkhwmVOUwEAe85BDQ:P1 (envelope-from ) for ; Tue, 06 Feb 2024 13:11:38 +0100 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id SCZsOfkhwmVOUwEAe85BDQ (envelope-from ) for ; Tue, 06 Feb 2024 13:11:38 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=zancanaro.id.au header.s=k1 header.b=F4dq9KEx; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=zancanaro.id.au ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1707221497; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=efJUq9bJekq1L/bvIOZ+tjneMRTNasnliuE1GskSyoI=; b=UyURN96gT0Vr0UJJINEF/4cfPidQyAzAgBmD3bAnR1fLq7drr8KrSahD7HtPRbSQJSzAlo MtExr1dMwuakGLWHV5rEO5CsZFIUXazY6yfFA9VfNgVtWvj0jsveJIS+chfQG0INRIrzp/ QDbAbk58mbcROg28jvJI+stAtqydOHrjKf+u8TIyyu7Tt2iFhSD4EDHOqmb8hnseVHxdaO tQK43eVvuLKpa8PM9F9tQh8NOULzC/5bFmZQycLnNLoRzKIlUk4wziZk2wBtDFVjx0HMQ9 lQsEKvAHc/uo7031oMkRSGSbSZAiQlAtH1K4J9wo3TxDbHD7kSJ3lp1FjSKVog== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=zancanaro.id.au header.s=k1 header.b=F4dq9KEx; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=zancanaro.id.au ARC-Seal: i=1; s=key1; d=yhetil.org; t=1707221497; a=rsa-sha256; cv=none; b=Eyw4pi/a/tvOZ4lkqpwvh9FpV0dSJxHOllz4XBy40fogvkA6lyD+BVBpRYoKJTovcJMVsm eQm15IHb5G2ucLwp7V8c/QRD4prsSDI0+O8Srg2o8PZWRfpZoqeI0w++ehMaYM17N4q0F0 /Bnk2da+yHZvEb9s3Wk+JHu5hWiYaE1FpFohetqTH0bidPvlHafQFoz52Za5Etep1wqx50 i0tZQOvnO+akDZfoKG1nLDTAdmZUIycAPpyY15cctY34NZRar7tPdQf58aehQ0T4zGIG2+ 9Pem4RiHU9/mvYLQu8NxdSuJUptU0b4pPRi/LeTG7XknQlorzrxss/WQ9qRlCg== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id BBF5E777AE for ; Tue, 6 Feb 2024 13:11:37 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rXKIG-00038e-Gz; Tue, 06 Feb 2024 07:11:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rXKIA-00038E-F5 for guix-devel@gnu.org; Tue, 06 Feb 2024 07:11:10 -0500 Received: from voltorb.zancanaro.id.au ([45.77.50.64]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rXKI4-0008UX-Ka for guix-devel@gnu.org; Tue, 06 Feb 2024 07:11:09 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=k1; bh=efJUq9bJekq1L/b vIOZ+tjneMRTNasnliuE1GskSyoI=; h=date:references:in-reply-to:subject: cc:to:from; d=zancanaro.id.au; b=F4dq9KExGuXD7G8d9Kkb9CVpMispavUJ+dBbZ Khn4QMsR4o2n7ThJeL9SbCMCXQKrFq77QqJ03s7SWr3Nrm8R+xDXa9xIyHFimWKzscmXoS m2XwMIxaz3Vh4WOBR07U52vTEVd4IR4J5XZGwioMHsNc3c1H9OWEo1i/qVVO0zRY= Received: by voltorb.zancanaro.id.au (OpenSMTPD) with ESMTPSA id 6cc5c651 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Tue, 6 Feb 2024 12:10:55 +0000 (UTC) From: Carlo Zancanaro To: Dale Mellor Cc: guix-devel Subject: Re: Intermediate abstraction of system service configuration In-Reply-To: (Dale Mellor's message of "Tue, 06 Feb 2024 05:47:56 +0000") References: Date: Tue, 06 Feb 2024 23:10:57 +1100 Message-ID: <87jznhiyi6.fsf@zancanaro.id.au> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=45.77.50.64; envelope-from=carlo@zancanaro.id.au; helo=voltorb.zancanaro.id.au X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -8.23 X-Migadu-Queue-Id: BBF5E777AE X-Spam-Score: -8.23 X-Migadu-Scanner: mx11.migadu.com X-TUID: fuqtM0gsb3ch Hi Dale! On Tue, Feb 06 2024, Dale Mellor wrote: > There is no middle ground. The nginx{,-upstream,-server}-configuration records have fields for {extra,raw}-content, which do allow arbitrary configuration lines to be added to their config. I think this is a sensible escape hatch to have to provide this middle ground. Andrew Tropin has done something interesting on the idea of more free-form configuration for nginx specifically[1], but I don't think that idea has found its way out of rde and into Guix yet. > I think that Guix taking the view of a configuration > file as a nested set of string-named blocks containing > lists of string-named, string-valued pairs would be an > intermediate level of abstraction more suited to the > Guix system configuration view of the world. This sounds quite similar to the way that Nix represents their internal configuration. Their model of configuring services is to have "Attribute Sets" (i.e. key/value mappings) which specify the configuration of services. Nix doesn't have service extension in the same way as Guix does, however, so interactions between different services look very different. We'd have to think carefully about how the Guix model of service extension would work with such an intermediate representation. Carlo [1]: https://fosstodon.org/@abcdw/110180191828598277