From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 29 09:43:22 2022 Received: (at 55898) by debbugs.gnu.org; 29 Aug 2022 13:43:22 +0000 Received: from localhost ([127.0.0.1]:60436 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oSf2w-0000MD-1H for submit@debbugs.gnu.org; Mon, 29 Aug 2022 09:43:22 -0400 Received: from eggs.gnu.org ([209.51.188.92]:41340) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oSf2u-0000Ly-8o for 55898@debbugs.gnu.org; Mon, 29 Aug 2022 09:43:20 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:42484) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oSf2o-0001il-CM; Mon, 29 Aug 2022 09:43:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=602L5BLSNIeZAvWZBbN1I34TaYEioswgjE7/Of+tLis=; b=Eaj1fW4mHbgh/G1nYdAH d45p68XtpS88m0E5/Q1VQWsWxv9rf7NppWEWQXhMoOB/BShf0Z9A+BRqYrGvCQzYgSaj5m9RdiD1Y Y7Pci3iMfj7e7gywjvHlMe0PU5VpCcALufCDXz2wvwPtOJ9pBfc0YBOXlwi2KF5BMcQPUzgDyYdUu ytb5T1Ji45NmEUh5G3gh6/BhX18OlE3ZKz40teoyGGm2XxwT2YjvvM77kxYdjI0uG1mxWRvC8aUgq zRHZLMTpexXVQ2llE4RjewbvQ770SntQ2rngga3Zh40mufCV6idFyysHMuqrBoOTBXwI5j/xx754s 1qcTrdLZfRaihw==; Received: from [193.50.110.104] (port=34990 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oSf2n-0001Ut-VS; Mon, 29 Aug 2022 09:43:14 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Maxim Cournoyer Subject: Re: bug#55898: Services depending on new Shepherd features may fail until reboot References: <87a6ajg2zv.fsf@gmail.com> <5521716772922285f7c6bc381c82613026eebbd9.camel@telenet.be> <87bkuvdoe4.fsf@gmail.com> <87r13ex7nw.fsf_-_@gmail.com> <87mtdl2a7u.fsf_-_@gmail.com> <87ilo9294m.fsf@gmail.com> <87a693pjm7.fsf_-_@gnu.org> <87r12fqf6j.fsf@gmail.com> Date: Mon, 29 Aug 2022 15:43:11 +0200 In-Reply-To: <87r12fqf6j.fsf@gmail.com> (Maxim Cournoyer's message of "Thu, 21 Jul 2022 00:10:12 -0400") Message-ID: <87y1v75fo0.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 55898 Cc: Maxime Devos , 55898@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi, Maxim Cournoyer skribis: > Ludovic Court=C3=A8s writes: [...] >> Yes. The issue is that we=E2=80=99re more free-style than systemd: we= =E2=80=99re >> basically loading code live in the running Shepherd. So we have to >> write that code such that it works with older Shepherd versions. >> >> This is why we have things like conditions on >> >> (defined? 'make-inetd-constructor) >> >> and the likes, with a fallback. > > I saw that used somewhere, but I still think a minimally required > Shepherd version field could be of use on services, for the following > reasons: > > 1. Otherwise each services are left implementing ad-hoc solutions. > > 2. It's more complicated to be compatible with two Shepherd version than > simply mentioning the minimum version required, and prevent the service > from running until it is satisfied (especially on a system like Guix > System where we *know* what is the current version of Shepherd > available). I think it=E2=80=99s a situation similar to =E2=80=9Cfeature tests vs. iden= tity tests=E2=80=9D in build system configuration (checking whether the libc function you want to use is available rather than checking whether =E2=80=98uname=E2=80= =99 returns =E2=80=9CLinux=E2=80=9D), and for the same reason I tend to prefer feature = tests as shown above. I won=E2=80=99t pretend it=E2=80=99s pretty :-), but I don=E2=80=99t see an= improvement feasible in the short term. In the long term, maybe we=E2=80=99d want the service API in the Shepherd t= o be more declarative, more like packages in Guix. But that=E2=80=99s more for = a 2.0 horizon IMO. Perhaps we should close this issue unless it becomes actionable? Thanks, Ludo=E2=80=99.