From mboxrd@z Thu Jan 1 00:00:00 1970 From: Miles Fidelman Subject: Re: question re. packaging, build, init and shepherd Date: Thu, 9 May 2019 17:22:20 -0400 Message-ID: <544e9b99-f1a1-8eec-b2d3-fbe8318ee93b@meetinghouse.net> References: <874l63o90m.fsf@cbaines.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([209.51.188.92]:52128) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hOqVS-0000x9-8z for help-guix@gnu.org; Thu, 09 May 2019 17:23:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hOqVQ-0001o3-VU for help-guix@gnu.org; Thu, 09 May 2019 17:23:10 -0400 Received: from server1.neighborhoods.net ([207.154.13.48]:59301) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hOqVQ-0001nl-RS for help-guix@gnu.org; Thu, 09 May 2019 17:23:08 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by server1.neighborhoods.net (Postfix) with ESMTP id 48BF8CC3D2 for ; Thu, 9 May 2019 17:23:08 -0400 (EDT) Received: from server1.neighborhoods.net ([127.0.0.1]) by localhost (server1.neighborhoods.net [127.0.0.1]) (amavisd-new, port 10024) with LMTP id gRpG+ZV6CB9E for ; Thu, 9 May 2019 17:23:05 -0400 (EDT) Received: from Miless-MBP.fios-router.home (pool-96-237-100-57.bstnma.fios.verizon.net [96.237.100.57]) by server1.neighborhoods.net (Postfix) with ESMTPSA id 5187BCC3D0 for ; Thu, 9 May 2019 17:23:05 -0400 (EDT) In-Reply-To: <874l63o90m.fsf@cbaines.net> Content-Language: en-US List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: help-guix@gnu.org Ok... a few follow-on questions (in-line): On 5/9/19 1:03 PM, Christopher Baines wrote: > Miles Fidelman writes: > >> The GUIX documentation is great when it comes to installing GUIX, and >> then installing packaged software. >> >> It's not so clear on how do install software that isn't in the package >> repository - whether by creating a package, or via the classic >> ./configure;make;make install, or if there are tools that can bring >> classically installed software under package management (e.g., the >> Debian alien tool). > I can't really think of a situation where creating a package would be a > bad approach, and the manual does describe this. There's also the > packaging tutorial blog post [1] > > 1: https://www.gnu.org/software/guix/blog/2018/a-packaging-tutorial-for= -guix/ > > I think there could indeed be a lack of guidance about where do perhaps > deviate from the instructions or common steps for installing software. > > Taking the shepherd as an example, the INSTALL file distributed with th= e > source contains the common: './configure && make && make install' Ok.. see that.=C2=A0 So it basically does what one would do manually,=20 following the instructions in the configure & make files. > > With a Guix System, that would probably work, at least initially. But > you'd be missing out on some of the advantages Guix packages offer, and > would possibly run in to problems with garbage collection. > > As Guix doesn't really have binary packages like Debian, there isn't > really the possibility of a Alien like tool. The dependencies between > the "binary" package forms are very strict, using exact store paths, > which would make generating a package to slot in to a system difficult. > >> And then there's the question of init systems: Until systemd came >> along, ./configure;make;make install generally just works - leaving >> init files in the right places, starting up daemons, etc. >> >> Which leads to the question of, if I want to install something >> complicated in GUIX - say the Sympa list manager (to pick a non-random >> example), which comes with standard sysvinit scripts - can I just >> ./configure;make;make install? Does Shepherd do the right thing with >> sysvinit scripts? Can I invoke them through Shepherd (e.g, after a >> config change)? Can I still edit & invoke the init scripts in the >> classic ways (vi, /etc/init.d/ restart). > The configuration of the shepherd is normally entirely managed through > your Guix operating-system definition. The configuration is generated i= n > te store, and shepherd looks at that. > > This is important as it allows you to boot in to previous generations o= f > your system, which is useful for recovering the system if things go > wrong. > > So, whereas I think things like systemd are aware of sysvinit scripts i= n > the usual place, the shepherd is completely unaware. So... that kind of leaves out automatically setting up servers. I mean,=20 most server software still comes with init files, maybe with systemd or=20 other init files, but generally make install sets things up so that=20 servers start & run. So how does GUIX support this? And, for that matter, how does GUIX handle any kind of post-install=20 configuration?=C2=A0 E.g., the kind of things that debconf might be used = for. Thanks, Miles Fidelman --=20 In theory, there is no difference between theory and practice. In practice, there is. .... Yogi Berra Theory is when you know everything but nothing works. Practice is when everything works but no one knows why. In our lab, theory and practice are combined: nothing works and no one knows why. ... unknown