From mboxrd@z Thu Jan 1 00:00:00 1970 From: Doron Behar Subject: Re: Trying to contribute packages: ./pre-inst-env doesn't work Date: Wed, 15 May 2019 17:31:38 +0300 Message-ID: <20190515143138.e5l5frlomgnosafe@NUC.doronbehar.com> References: <20190515080654.6g7gf7b2g5kx677v@NUC.doronbehar.com> <20190515094629.hcxxxddpgoirwhza@NUC.doronbehar.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([209.51.188.92]:32960) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hQuxS-0005Lb-1N for help-guix@gnu.org; Wed, 15 May 2019 10:32:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hQuxQ-0003zj-OI for help-guix@gnu.org; Wed, 15 May 2019 10:32:38 -0400 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]:56285) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hQuxQ-0003z9-I6 for help-guix@gnu.org; Wed, 15 May 2019 10:32:36 -0400 Received: by mail-wm1-x32d.google.com with SMTP id x64so251348wmb.5 for ; Wed, 15 May 2019 07:32:36 -0700 (PDT) Received: from localhost (bzq-79-180-236-30.red.bezeqint.net. [79.180.236.30]) by smtp.gmail.com with ESMTPSA id y40sm3750863wrd.96.2019.05.15.07.32.33 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 15 May 2019 07:32:34 -0700 (PDT) Content-Disposition: inline In-Reply-To: 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 On Wed, May 15, 2019 at 12:41:45PM +0200, Gábor Boskovits wrote: > > > Did you also run make? > > > > No! I was hoping I could avoid that as that's extremely CPU intensive.. > > Is there a way to run make with only the relevant targets? That could be > > very helpful... > > > > Plus, do I have to run make after every change to a package definition!? > > Will it compile everything from the ground up after every such change? I > > wish these technical details would have been documented... > > > > > No, you don't need to do that. Guix will interpret the changed sources, and > it will add a warning that the source file is newer. I've finally succeeded in setting up my environment for building and contributing packages. Thanks for making it clear that `make` is needed. This is certainly not explicitly mentioned in the docs as far as I can see. > > > > I'm running make while I'm writing this email and I must say that not > > only it takes a lot of time and uses a lot of CPU power, it handles way > > too much irrelevant things such as translations. > > > > I also noticed it runs GUILEC - is it really necessary? I'm no Guile > > expert and I wish I could avoid diving to the whole ecosystem of it just > > because I want to use Guix and contribute some packages! > > > > I talked about this subject in a different thread: The design choice of > > putting all package definitions in the same repository as the package > > manager it self is very uncommon in the Linux. I understand that almost > > all of Guix is written in Guile so it must be linked somehow to the > > package definitions but I think it makes it very hard to actually > > > > The channels mechanism actually makes it possible to split off any > part of the packages. So there is no limitations in moving most of > the packages definitions out of guix. I am not familiar enough to > tell if all package definitions could be moved into channels, but for > most of them this could be done. > > Could you elaborate on the benefits of doing that? > I guess this could be a great topic of discussion. Well I guess that wouldn't have mattered that much if there was a known way to run `make` only for the packages and not for the whole code base which is huge. I'm not sure. The problem for me was that I ran `make clean` under the source tree and then I couldn't figure out why packages weren't loaded anymore from my tree. I still don't understand really why these scheme files aren't loaded dynamically. Do I need these `.go` files to exist?