all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: iyzsong@member.fsf.org (宋文武)
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: guix-devel@gnu.org
Subject: Re: should gnome-desktop-service really provide all of this to a profile?
Date: Wed, 09 Mar 2016 15:38:46 +0800	[thread overview]
Message-ID: <87egbkf6d5.fsf@member.fsf.org> (raw)
In-Reply-To: <87fuw1j5b5.fsf@gnu.org> ("Ludovic Courtès"'s message of "Tue, 08 Mar 2016 17:35:42 +0100")

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

ludo@gnu.org (Ludovic Courtès) writes:

> Pulseaudio also propagates a few things.
Yes, I think it should be splited into “out” and “dev”, if we can make
only the “dev” output propagating libcap and gdbm.
>
>>>>> Good point, this sounds undesirable (and shows that some packages would
>>>>> benefit from separate outputs—e.g., “doc” output for xcb.)
>> It seems that multiple outputs doesn’t help here.
>
> Multiple outputs do help here: propagating libxcb:out only propagates
> libxcb:out, and not libxcb:doc.
OK, but here we don’t want libxcb at all :-)
>
>> For example, install ‘gtk+:doc’ into the profile will bring all
>> propagated-inputs of ‘gtk+’ into profile too, because
>> propagated-inputs aren’t per output…
>
> Right, it’s a limitation that we could fix.
>
> It’s rarely a problem though, because usually when you install the “doc”
> or “debug” output, you also want the rest, including propagated
> inputs.
>
>> IIUC, in nix, it’s handled by writing files to specified output:
>> ‘$out/nix-support/propagated-build-inputs’
>> ‘$out/nix-support/propagated-native-build-inputs’
>> ‘$out/nix-support/propagated-user-env-packages’
>>
>> And only items in ‘propagated-user-env-packages’ are included when
>> install into the profile.
>
> Two things here:
>
>   • Back in the day, I couldn’t think of a situation where it would make
>     sense for ‘propagated-inputs’ to be different from
>     ‘propagated-user-env-packages’ (at the time, the latter was little
>     known so in practice people had to install dependencies by
>     themselves.)  So in Guix I chose to have just one.
In nix ‘propagated-build-inputs’ is propagations and ‘inputs’ for building
while ‘propagated-user-env-packages’ is propagations for profile.
In guix ‘propagated-inputs’ is propagations for both building and profile
and at the same time is ‘inputs’ for building.
I agree that propagations for building or for profile is the same thing,
and there’re some runtime only dependencies worthing treating as
non-inputs (eg: adwaita-icon-themes, plugins for gstreamer).

How about seperating propagations from ‘propagated-inputs’?
This requires listing some packages twice, but I think it will be more
clear considering ‘inputs’ are for building the whole package while
‘propagations’ are (should be) per-output.

eg:
--8<---------------cut here---------------start------------->8---
(package
  (name "pulseaudio")
  (outputs '("out" "include" "lib" "dev"))
  (inputs
   `(("libpcap" ,libcap)
     ("gdbm" ,gdmb)
     ...))
  (propagations
    #:output "dev"
    `(("pulseaudio:include" ,pulseaudio "include")
      ("pulseaudio:lib"     ,pulseaudio "lib")
      ("libpcap" ,libpcap)
      ("gdbm" ,gdbm)))
  ...)
--8<---------------cut here---------------end--------------->8---

>
>   • I found the ‘nix-support’ trick (that is, having high-level
>     information on the build side) kind of hacky, which is why this
>     information is solely on the build side in Guix.  This is what
>     allows higher-level functionality such as --search-paths to be
>     implemented on the host side.
>
>     OTOH, things like <http://bugs.gnu.org/22138> could be more easily
>     addressed if all the info was already on the build side.
Agree :-)
>
>
> […]
> Anyway, what do you think would be the best way to avoid “profile
> pollution” with the GNOME meta-package?
I think, for now:

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-nautilus-Don-t-propagate-gtk.patch --]
[-- Type: text/x-patch, Size: 1312 bytes --]

From 7206310f7320ed99eabd7f774a083c7b1f78c81f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@gmail.com>
Date: Wed, 9 Mar 2016 13:17:48 +0800
Subject: [PATCH] gnu: nautilus: Don't propagate gtk+.

This reduces "profile pollution" of the 'gnome' meta package.
See <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.

* gnu/packages/gnome.scm (nautilus): Move gtk+ from propagated-inputs to inputs.
---
 gnu/packages/gnome.scm | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index c945c0e..68218f6 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4635,13 +4635,12 @@ as SASL, TLS and VeNCrypt.  Additionally it supports encoding extensions.")
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
-    (propagated-inputs
-     `(("gtk+" ,gtk+))) ; required by libnautilus-extension.pc
     (inputs
      ;; TODO: add gvfs support.
      `(("dconf" ,dconf)
        ("exempi" ,exempi)
        ("gnome-desktop" ,gnome-desktop)
+       ("gtk+" ,gtk+) ; XXX: required by libnautilus-extension.pc
        ("libexif" ,libexif)
        ("libxml2" ,libxml2)))
     (synopsis "File manager for GNOME")
-- 
2.6.3


[-- Attachment #3: Type: text/plain, Size: 280 bytes --]

(Actually, I’m ok with a polluted profile.
And the ‘xfce’ propagates gtk+ by exo too.)

Next is to make propagations (and ‘search-paths’?) per-output.

And we can add some filter (based on search-paths or services
extensions?) to profile for hide unwanted files.

  reply	other threads:[~2016-03-09  7:39 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-07 15:50 should gnome-desktop-service really provide all of this to a profile? Andy Wingo
2016-03-07 21:11 ` Ludovic Courtès
2016-03-08  8:48   ` Andy Wingo
2016-03-08  9:15     ` Ludovic Courtès
2016-03-08 14:31       ` 宋文武
2016-03-08 16:35         ` Ludovic Courtès
2016-03-09  7:38           ` 宋文武 [this message]
2016-03-09 23:02             ` 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

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

  git send-email \
    --in-reply-to=87egbkf6d5.fsf@member.fsf.org \
    --to=iyzsong@member.fsf.org \
    --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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.