From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gammel Holte Subject: Optional runtime dependencies in Guix Date: Sun, 23 Nov 2014 03:43:13 +0000 Message-ID: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=001a11c2cefe44244d05087e7a01 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:57562) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XsO4x-00080C-LT for guix-devel@gnu.org; Sat, 22 Nov 2014 22:43:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XsO4w-0002qY-Gc for guix-devel@gnu.org; Sat, 22 Nov 2014 22:43:15 -0500 Received: from mail-qc0-x231.google.com ([2607:f8b0:400d:c01::231]:40409) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XsO4w-0002qU-D5 for guix-devel@gnu.org; Sat, 22 Nov 2014 22:43:14 -0500 Received: by mail-qc0-f177.google.com with SMTP id x3so5499012qcv.36 for ; Sat, 22 Nov 2014 19:43:13 -0800 (PST) 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: guix-devel@gnu.org --001a11c2cefe44244d05087e7a01 Content-Type: text/plain; charset=UTF-8 Hello, I'm glad to see all interesting ideas from Nix being implemented as a DSL on top of Scheme, which makes an awesome combination. That said, I would like to bring up an issue I've faced multiple times while using Nix, hoping that Guix can adopt a better solution here: optional runtime dependencies. Nix doesn't have a good decoupling between packages and their optional runtime dependencies. You can disable them, but this would lead to a different package hash, and thus a different build (negating the use of prebuilt binaries). Therefore, the culture seems to have all default package builds with all optional runtime dependencies on. This leads to situations such as installing mutt, and getting python as a dependency (via mutt -> gpgme -> glib -> python), which is quite ugly. Installing many unneeded packages in your system is undesirable for many reasons. It has bothered me when using Nix in small embedded systems due to resource limitations. I haven't come up with any solution that also preserves purity. Perhaps one needs to draw a line between what is a package dependency and what isn't. In my option, a glib build is the same in the presence or absence of python, just like firefox is the same whether you have flash installed or not. Alex. --001a11c2cefe44244d05087e7a01 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hello,

I&#= 39;m glad to see all interesting ideas from Nix being implemented as a DSL = on top of Scheme, which makes an awesome combination.

That sai= d, I would like to bring up an issue I've faced multiple times while us= ing Nix, hoping that Guix can adopt a better solution here: optional runtim= e dependencies.

Nix doesn't have a good decoupling between= packages and their optional runtime dependencies. You can disable them, bu= t this would lead to a different package hash, and thus a different build (= negating the use of prebuilt binaries).

Therefore, the culture= seems to have all default package builds with all optional runtime depende= ncies on. This leads to situations such as installing mutt, and getting pyt= hon as a dependency (via mutt -> gpgme -> glib -> python), which i= s quite ugly.

Installing many unneeded packages in your system= is undesirable for many reasons. It has bothered me when using Nix in smal= l embedded systems due to resource limitations.

I haven't = come up with any solution that also preserves purity. Perhaps one needs to = draw a line between what is a package dependency and what isn't. In my = option, a glib build is the same in the presence or absence of python, just= like firefox is the same whether you have flash installed or not.

<= /div>Alex.
--001a11c2cefe44244d05087e7a01--