From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= Subject: Re: 33/33: daemon: Workaround issues for the Hurd. Date: Tue, 10 Mar 2020 10:04:43 +0100 Message-ID: <87v9ncwpg4.fsf@gnu.org> References: <20200310075832.7126.86402@vcs0.savannah.gnu.org> <20200310075853.45FCC21252@vcs0.savannah.gnu.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:470:142:3::10]:39136) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBaog-0006u2-Mt for guix-devel@gnu.org; Tue, 10 Mar 2020 05:04:47 -0400 In-Reply-To: <20200310075853.45FCC21252@vcs0.savannah.gnu.org> (guix-commits@gnu.org's message of "Tue, 10 Mar 2020 03:58:53 -0400 (EDT)") 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+gcggd-guix-devel=m.gmane-mx.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org, Jan Nieuwenhuizen guix-commits@gnu.org skribis: > commit c32b64950972a459af7192abd7a8bc9619c013e9 > Author: Manolis Ragkousis > AuthorDate: Wed Dec 28 02:49:22 2016 +0200 > > daemon: Workaround issues for the Hurd. >=20=20=20=20=20 > This allows for native builds on the Hurd, doing >=20=20=20=20=20 > sudo ./pre-inst-env guix-daemon --disable-chroot --build-users-gr= oup=3Dguixbuild & > ./pre-inst-env guix build hello >=20=20=20=20=20 > * nix/libstore/build.cc (DerivationGoal::startBuilder)[__GNU__]: Allow > non-chrooted build. > * nix/libutil/util.cc (killUser)[__GNU__]: Avoid wait failure. [...] > +++ b/nix/libstore/build.cc > @@ -1824,7 +1824,7 @@ void DerivationGoal::startBuilder() > } >=20=20 > if (useChroot) { > -#if CHROOT_ENABLED > +#if CHROOT_ENABLED || __GNU__ Can we instead change the #define CHROOT_ENABLED such that CHROOT_ENABLED is always true when __GNU__? Also with a comment stating that GNU supports chroot(2) without being root. > +++ b/nix/libutil/util.cc > @@ -872,9 +872,11 @@ void killUser(uid_t uid) > _exit(0); > }); >=20=20 > +#if !__GNU__ > int status =3D pid.wait(true); > if (status !=3D 0) > throw Error(format("cannot kill processes for uid `%1%': %2%") %= uid % statusToString(status)); > +#endif Do you know what the rationale was? It looks like it could leave zombies behind us. Ludo=E2=80=99.