From mboxrd@z Thu Jan 1 00:00:00 1970 From: iyzsong@member.fsf.org (=?utf-8?B?5a6L5paH5q2m?=) Subject: Re: should gnome-desktop-service really provide all of this to a profile? Date: Wed, 09 Mar 2016 15:38:46 +0800 Message-ID: <87egbkf6d5.fsf@member.fsf.org> References: <87y49u70eo.fsf@pobox.com> <87si0256y9.fsf@gnu.org> <87ziu94ap7.fsf@igalia.com> <87pov5nxdo.fsf@gnu.org> <87ziu9yrbl.fsf@member.fsf.org> <87fuw1j5b5.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:50588) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1adYiH-0005nl-3r for guix-devel@gnu.org; Wed, 09 Mar 2016 02:39:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1adYiC-0001uc-7z for guix-devel@gnu.org; Wed, 09 Mar 2016 02:39:21 -0500 Received: from smtp17.openmailbox.org ([62.4.1.51]:55392) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1adYiB-0001uQ-UR for guix-devel@gnu.org; Wed, 09 Mar 2016 02:39:16 -0500 In-Reply-To: <87fuw1j5b5.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Tue, 08 Mar 2016 17:35:42 +0100") 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: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: guix-devel@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Pulseaudio also propagates a few things. Yes, I think it should be splited into =E2=80=9Cout=E2=80=9D and =E2=80=9Cd= ev=E2=80=9D, if we can make only the =E2=80=9Cdev=E2=80=9D output propagating libcap and gdbm. > >>>>> Good point, this sounds undesirable (and shows that some packages wou= ld >>>>> benefit from separate outputs=E2=80=94e.g., =E2=80=9Cdoc=E2=80=9D out= put for xcb.) >> It seems that multiple outputs doesn=E2=80=99t help here. > > Multiple outputs do help here: propagating libxcb:out only propagates > libxcb:out, and not libxcb:doc. OK, but here we don=E2=80=99t want libxcb at all :-) > >> For example, install =E2=80=98gtk+:doc=E2=80=99 into the profile will br= ing all >> propagated-inputs of =E2=80=98gtk+=E2=80=99 into profile too, because >> propagated-inputs aren=E2=80=99t per output=E2=80=A6 > > Right, it=E2=80=99s a limitation that we could fix. > > It=E2=80=99s rarely a problem though, because usually when you install th= e =E2=80=9Cdoc=E2=80=9D > or =E2=80=9Cdebug=E2=80=9D output, you also want the rest, including prop= agated > inputs. > >> IIUC, in nix, it=E2=80=99s handled by writing files to specified output: >> =E2=80=98$out/nix-support/propagated-build-inputs=E2=80=99 >> =E2=80=98$out/nix-support/propagated-native-build-inputs=E2=80=99 >> =E2=80=98$out/nix-support/propagated-user-env-packages=E2=80=99 >> >> And only items in =E2=80=98propagated-user-env-packages=E2=80=99 are inc= luded when >> install into the profile. > > Two things here: > > =E2=80=A2 Back in the day, I couldn=E2=80=99t think of a situation wher= e it would make > sense for =E2=80=98propagated-inputs=E2=80=99 to be different from > =E2=80=98propagated-user-env-packages=E2=80=99 (at the time, the latt= er was little > known so in practice people had to install dependencies by > themselves.) So in Guix I chose to have just one. In nix =E2=80=98propagated-build-inputs=E2=80=99 is propagations and =E2=80= =98inputs=E2=80=99 for building while =E2=80=98propagated-user-env-packages=E2=80=99 is propagations for pr= ofile. In guix =E2=80=98propagated-inputs=E2=80=99 is propagations for both buildi= ng and profile and at the same time is =E2=80=98inputs=E2=80=99 for building. I agree that propagations for building or for profile is the same thing, and there=E2=80=99re some runtime only dependencies worthing treating as non-inputs (eg: adwaita-icon-themes, plugins for gstreamer). How about seperating propagations from =E2=80=98propagated-inputs=E2=80=99? This requires listing some packages twice, but I think it will be more clear considering =E2=80=98inputs=E2=80=99 are for building the whole packa= ge while =E2=80=98propagations=E2=80=99 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--- > > =E2=80=A2 I found the =E2=80=98nix-support=E2=80=99 trick (that is, hav= ing 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 could be more easily > addressed if all the info was already on the build side. Agree :-) > > > [=E2=80=A6] > Anyway, what do you think would be the best way to avoid =E2=80=9Cprofile > pollution=E2=80=9D with the GNOME meta-package? I think, for now: --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-gnu-nautilus-Don-t-propagate-gtk.patch >From 7206310f7320ed99eabd7f774a083c7b1f78c81f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= 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 . * 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 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable (Actually, I=E2=80=99m ok with a polluted profile. And the =E2=80=98xfce=E2=80=99 propagates gtk+ by exo too.) Next is to make propagations (and =E2=80=98search-paths=E2=80=99?) per-outp= ut. And we can add some filter (based on search-paths or services extensions?) to profile for hide unwanted files. --=-=-=--