From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christopher Allan Webber Subject: Re: Getting rid of build tools Date: Mon, 28 Dec 2015 09:06:40 -0600 Message-ID: <87oadalfr7.fsf@dustycloud.org> References: <20151227082320.GA613@thebird.nl> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:45374) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aDaJi-0000vX-C1 for guix-devel@gnu.org; Mon, 28 Dec 2015 11:06:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aDaJc-000330-L1 for guix-devel@gnu.org; Mon, 28 Dec 2015 11:06:38 -0500 Received: from dustycloud.org ([2600:3c02::f03c:91ff:feae:cb51]:49303) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aDaJc-00032w-GR for guix-devel@gnu.org; Mon, 28 Dec 2015 11:06:32 -0500 In-reply-to: <20151227082320.GA613@thebird.nl> 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-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Pjotr Prins Cc: guix-devel@gnu.org Pjotr Prins writes: > Hi all, > > 2015 was a good year for GNU Guix - Guix has made immense progress. Some > thoughts for 2016: > > I am a software developer by trade and for years I have struggled with > build systems, such as configure/automake, cmake, Ruby RVM/bundler, > Python virtualenv etc. etc. You probably know I have already ditched > RVM/bundler and virtualenv for GNU Guix which is great :) > > Recently it dawned on me that for programming with GNU Guix there is > no longer a need for configure/automake and cmake either! These tools > really try to address the problem of targetting different (posix) > build environments. If I only target GNU Guix I think a simple make > will do again because there are only a few final targets (test, debug, > install) and GNU Guix resolves all dependencies. This greatly > simplifies the task of the software developer. > > I am not going to let tears over losing these complex build tools. And > being a Linux guy I am happy to only target Linux. The different > virtualization solutions make deployments on different systems quite > easy anyway and trivial with Guix because it comes with all > dependencies. > > Even so, my prediction is that eventually other systems will be > targeted too. Even though there currently is not much GNU Guix > initiative outside Linux/Hurd I think people will start working on > other ports. The Guix/Nix back-end already runs on the BSDs, for > example. So, it is mostly a matter of adapting the Guix front-end. I appreciate and share your pro-guix enthusiasm, and I share your frustration fighting build and packaging systems, though I think there are some good reasons to have the traditional build tools, with and without Guix. Portability is one nice one, but: - Compiling only the files needed during development is important - It's nice to be able to have a standard way to switch on/off features (see emacs with and without X packages in Guix) - Finding what to link to at compile time Other things I'm sure (standardizing how to run tests and stuff saves some time while packaging, etc). I guess these things could be done through Guix itself. What I'd rather see though is a "./configure && make" compatible interface system for package building which uses Guile as its configuration language. Automake and friends are great when they're working, but I'd love a system that relied less on string-macro expansion and etc when I have to debug them. I think that would be an interesting project. It would be nice to see it happen outside of Guix though, so it could be used more generally. - Chris