[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Getting rid of build tools
From: |
Christopher Allan Webber |
Subject: |
Re: Getting rid of build tools |
Date: |
Mon, 28 Dec 2015 09:06:40 -0600 |
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