From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Marusich Subject: Re: Defining shepherd user services -- feedback desired Date: Sun, 11 Feb 2018 02:29:38 +0100 Message-ID: <87y3k0mhz1.fsf@gmail.com> References: <87bmh5o8ux.fsf@librem.i-did-not-set--mail-host-address--so-tickle-me> <871shzhf5j.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:50431) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ekgSh-00013H-4t for guix-devel@gnu.org; Sat, 10 Feb 2018 20:29:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ekgSg-0007nC-1y for guix-devel@gnu.org; Sat, 10 Feb 2018 20:29:47 -0500 In-Reply-To: <871shzhf5j.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Mon, 05 Feb 2018 12:03:36 +0100") 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.org@gnu.org Sender: "Guix-devel" To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: guix-devel@gnu.org, Alex ter Weele --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable ludo@gnu.org (Ludovic Court=C3=A8s) writes: >> (define (services->package services) >> "Yield a package for SERVICES by making them into a shepherd >> configuration file via scheme-file." > > This makes me think that perhaps we should generalize profile, and allow > non-package objects in there=E2=80=94it doesn=E2=80=99t feel right to def= ine a > for something that=E2=80=99s conceptually not a package at all. > > But then that leads to issues, like what should =E2=80=98guix package -u= =E2=80=99 do? > How should ~/.guix-profile/manifest represent these non-package things? > Should we add =E2=80=98guix package --install-service=E2=80=99 or similar= ? (Well, that > may be overboard=E2=80=A6) Profiles are our mechanism for "activating" simple software like GNU Hello. Software that does not need to be started, stopped, or otherwise managed by a system like Shepherd. What is a good mechanism for "activating" more complex software that needs this sort of management? Perhaps we can make a "guix service" command which performs upgrades like we do in 'upgrade-shepherd-services' (from guix/scripts/system.scm), but arranges to execute those commands against a user-specific Shepherd, not the root user's Shepherd? Perhaps a user profile should also have a "user services activation script", like how an operating system declaration has operating-system-activation-script (in gnu/system.scm)? I personally wouldn't mind if this stuff (e.g., the service activation script) wound up in a user's profile, but I can see what you're saying about how it might make using manifests difficult. So, I also wouldn't mind if the user service activation stuff was stored somewhere else, for example in ~/.guix-services". Maybe we could we stash the activation script into a place like ~/.guix-profile/boot, similar to how we store an activation script for the entire system in /run/current-system/boot? There must be a way to do this that makes sense... =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlp/nIIACgkQ3UCaFdgi Rp1MfhAAvC5LDHA4Ky+zj1fbZ1u49GqdoeuU3U5sXlebvkdMhI7Zbcxw9fPxvKdC GvhmurEbyVy0R9esqsFSuR4BnwiRbAFFTudtgoAFy31wC1dMhwxE7Axa7kjHTG0l /BcH4OHoerkVzhClULuGwkUq8ZTBxbDbR11PVotwNCc/g8CHdCc6KyH4Yq8oWQxS GmxzweCKEbWCDCRiYKny3GYENB0Y/afwK1d423b/ZWtPLYvszU4YM+TR3NaGNP4r hFb5eh5yNsrECUsr62uy9aHh4kLE7dPLvTEi3ZFqTz8B8J5nLEyBzxVHCxoKVpWy 9WxZ9XoVYVXucujIU2mPSP7ChaNKqocQEnRt0lkCYuKXqpjKHvEylRFJg+Rbu4Mw jmnFA5z2C/mtQlkdrgtGv4hpZ3lz2xaaeeWLCc8qN6FsMWxpHzCV8yHlrwcUAt4L lv7OwVuxmqkIvlIOg2jM7g7j2Xr4UBPfYzeMX/PAFTiC6qPqS3lp3znzo8BKrf9a ynvim5vNQzeIRvahIHxF2di0EbD7BTa45taUMfqK5Go5lmTgTyBpnMMq2wUVAalo gaFNthfd0WWNXS8uyt6at8M5/kwD/c+DGPKjy5LTfjrNkY8Ov6uvY4Q/J+ygU3Ai o/pDWAMP/vao3ihkE6X/a0/7PPE09kOxmz9mNA/Ttv/fJyPXkFg= =W+ti -----END PGP SIGNATURE----- --=-=-=--