unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Gammel Holte <gammel.holte@gmail.com>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: guix-devel@gnu.org
Subject: Re: Optional runtime dependencies in Guix
Date: Sun, 11 Jan 2015 15:38:38 +0000	[thread overview]
Message-ID: <CAGFCsG_56f_bqH_rMQcff46AV4Pq8H-GMPTh9LtrFaYgMwdQdg@mail.gmail.com> (raw)
In-Reply-To: <87zjbh3arc.fsf@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 3312 bytes --]

Apologies for the really late reply. Sadly I was ill for the best part of
December.

So I wouldn’t claim this is a solved problem, because it really gets
> fixed when we discover a problematic case, and we certainly overlook
> some of them.  Yet, that’s something I pay attention to, and I think we
> must clearly look to address more of such issues.
>
> WDYT?
>

I am super excited about Guix and the system seems to be progressing very
quickly. Loads of commits everyday. However, the more I dig into Guix, the
more i see this as an urgent issue.

For example, consider samtools, a package I use daily and that was recently
committed to Guix:

http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/bioinformatics.scm#n139

It forces me to install python. In contrast, consider Arch AUR's package:

https://aur.archlinux.org/packages/samtools/

Python is listed an optional dependency. In my opinion, it is highly
undesirable that Guix doesn't have a mechanism to decouple packages from
optional dependencies. This scenario seems to be arising mostly in case of
interpreters that may be called by the program to execute some optional
stuff.

An extreme example of this is weechat:

http://lists.gnu.org/archive/html/guix-devel/2014-09/msg00229.html

Compare with:

https://www.archlinux.org/packages/extra/i686/weechat/

Guix version forces the user to install all interpreters for running
user-defined scripts to extend Weechat. These are quite many: lua, perl,
python, ruby, tcl (and guile).

I understand Guix/Nix philosophy and I adhere to it. But at some point we
need to draw the line between a dependency and dynamic linking. Otherwise,
installing a package may lead to many undesired dependencies getting
installed. This has many implications, including security ones.

Best wishes,
A.

On Sun, Nov 23, 2014 at 8:47 PM, Ludovic Courtès <ludo@gnu.org> wrote:

> Hello,
>
> Gammel Holte <gammel.holte@gmail.com> skribis:
>
> > 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.
>
> That’s indeed undesirable.
>
> As I just wrote to Taylan Ulrich, this is currently handled on a
> case-by-case basis using multiple outputs (which I think Nixpkgs doesn’t
> use a lot yet.)
>
> For instance, GLib has a separate “bin” output for this very reason (see
> <http://bugs.gnu.org/17853>.)  Git, as I wrote, has separate outputs for
> git-svn and Tcl stuff.  Same for WordNet.  There are also separate
> outputs for debugging symbols.
>
> So I wouldn’t claim this is a solved problem, because it really gets
> fixed when we discover a problematic case, and we certainly overlook
> some of them.  Yet, that’s something I pay attention to, and I think we
> must clearly look to address more of such issues.
>
> WDYT?
>
> Thanks,
> Ludo’.
>

[-- Attachment #2: Type: text/html, Size: 4614 bytes --]

  reply	other threads:[~2015-01-11 15:38 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-23  3:43 Optional runtime dependencies in Guix Gammel Holte
2014-11-23 20:47 ` Ludovic Courtès
2015-01-11 15:38   ` Gammel Holte [this message]
2015-01-12  9:38     ` Ludovic Courtès
2015-01-12 11:23       ` Ricardo Wurmus
2015-01-12 16:03         ` Ludovic Courtès
2015-01-12 13:11       ` 宋文武
2015-01-12 16:26         ` Ludovic Courtès
2015-01-12 18:47           ` Andreas Enge
2015-01-12 19:18             ` Gammel Holte
2015-01-13 17:28               ` Ludovic Courtès
2015-01-13 17:24             ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAGFCsG_56f_bqH_rMQcff46AV4Pq8H-GMPTh9LtrFaYgMwdQdg@mail.gmail.com \
    --to=gammel.holte@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).