From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#30706: Nginx service fails Date: Sat, 10 Mar 2018 16:30:15 +0100 Message-ID: <87o9jwuewo.fsf__22017.232180997$1520695754$gmane$org@gnu.org> References: <20180304222749.GA23799@jurong> <20180304230637.GA24077@jurong> <87k1uqbzq9.fsf@gnu.org> <20180306172442.76df0bb1@scratchpost.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:54346) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eugSf-0005kY-Ax for bug-guix@gnu.org; Sat, 10 Mar 2018 10:31:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eugSc-0006kl-3Y for bug-guix@gnu.org; Sat, 10 Mar 2018 10:31:05 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:46404) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eugSc-0006kg-01 for bug-guix@gnu.org; Sat, 10 Mar 2018 10:31:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eugSb-0004Nm-Jd for bug-guix@gnu.org; Sat, 10 Mar 2018 10:31:01 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <20180306172442.76df0bb1@scratchpost.org> (Danny Milosavljevic's message of "Tue, 6 Mar 2018 17:24:42 +0100") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: Danny Milosavljevic Cc: guix-devel@gnu.org, 30706@debbugs.gnu.org Heya, Danny Milosavljevic skribis: >> If you run this on an =E2=80=9Cold=E2=80=9D GuixSD, =E2=80=98find-long-o= ptions=E2=80=99 is undefined. > > How can it be that (gnu services base) with find-long-options call is pre= sent > but the (gnu build linux-boot)'s find-long options isn't present? The service-upgrade code loads new service definitions in PID=C2=A01. However, it does not force a reload of already-loaded modules. What happens here is that (gnu build linux-boot), the one without =E2=80=98find-long-options=E2=80=99, is already available in PID=C2=A01. T= hus, when end up using that one, which lacks =E2=80=98find-long-options=E2=80=99. We could call =E2=80=98reload-module=E2=80=99, but that=E2=80=99s probably = not a great idea as it could cause breakage in previously-loaded code in PID=C2=A01. So I think the current approach is the safest, and breakage of this sort should be quite rare; we should pay attention to such issues, though, and try hard to avoid them. (Note that there=E2=80=99s no problem once you reboot, of course.) >> 1. =E2=80=98guix system reconfigure=E2=80=99 should probably register = services one by >> one so that if one of the service expressions is erroneous, we >> don=E2=80=99t bork everything. See =E2=80=98upgrade-shepherd-servi= ces=E2=80=99. > > Yes please. > >> 2. IWBN to delay execution of this whole default-tty thing to the >> #:start method. Ideas, Danny? > > The idea was that if you specify a serial console at boot that you can > actually log in at that console. > > So it's trying to find out whether, at the time of service start, > there is a serial console specified (in the Linux command line), and if > so, start an agetty. Otherwise do not start that agetty. > > We could also do that without a guix service - but I thought it would be > nice to have a guix service for it as well. I agree. I think what you did in c32e3ddedd103318ca3f0a4bf0c91c91e2517806 is good. The effect here is just that agetty would fail to start upon reconfigure, but that=E2=80=99s an acceptable limitation IMO. Thanks, Ludo=E2=80=99.