guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/4] gnu: Add XFILESEARCH path to profiles' environment.


From: Ludovic Courtès
Subject: Re: [PATCH 1/4] gnu: Add XFILESEARCH path to profiles' environment.
Date: Tue, 29 Nov 2016 15:34:11 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

John Darrington <address@hidden> skribis:

>     
>     > * gnu/system.scm (operating-system-etc-service): Add new environment
>     variable:
>     
>     The guix.texi change is missing from the log.
>
> Thanks for noticing.
>     
>     > diff --git a/doc/guix.texi b/doc/guix.texi
>     > index e64c361..9d133bb 100644
>     > --- a/doc/guix.texi
>     > +++ b/doc/guix.texi
>     > @@ -1209,6 +1209,36 @@ data in the right format.
>     >  This is important because the locale data format used by different libc
>     >  versions may be incompatible.
>     >  
>     > address@hidden X Window System
>     > address@hidden XFILESEARCHPATH
>     > address@hidden @code{Xt}
>     > address@hidden X Toolkit Intrinsics
>     > address@hidden @command{xterm}
>     > +
>     > +If you intend to use X Toolkit Intrinsics client applications such
>     > +as @command{xterm} then you should define the @code{XFILESEARCHPATH}
>     > +environment variable:
>     > +
>     > address@hidden
>     > +$ export XFILESEARCHPATH="$HOME/.guix-profile/share/X11/%L/%T/%N%C%S:
>     > +  $HOME/.guix-profile/share/X11/%l/%T/%N%C%S:
>     > +  $HOME/.guix-profile/share/X11/%T/%N%C%S:
>     > +  $HOME/.guix-profile/share/X11/%L/%T/%N%S:
>     > +  $HOME/.guix-profile/share/X11/%l/%T/%N%S:
>     > +  $HOME/.guix-profile/share/X11/%T/%N%S:
>     > +  $HOME/.guix-profile/lib/X11/%L/%T/%N%C%S:
>     > +  $HOME/.guix-profile/lib/X11/%l/%T/%N%C%S:
>     > +  $HOME/.guix-profile/lib/X11/%T/%N%C%S:
>     > +  $HOME/.guix-profile/lib/X11/%L/%T/%N%S:
>     > +  $HOME/.guix-profile/lib/X11/%l/%T/%N%S:
>     > +  $HOME/.guix-profile/lib/X11/%T/%N%S"
>     > address@hidden example
>     
>     Seriously?!  I mean, we can reasonably ask people to do that, can we?
>     Is there another way?
>
> *shrug?* It's one more variable to set. Granted it's a long one.  But it's
> not *us* that's asking them to do it.  We are merely passing along advice
> from the Xt lib developers (see below).   If people want to use Xt then
> that's what they're supposed to do.

Fortunately people don’t “want” to use Xt nowadays.  ;-)

At any rate, I’m surprised this is so involved.

>     > +export XFILESEARCHPATH=\"$HOME/.guix-profile/share/X11/%L/%T/%N%C%S:\\
>     > +$HOME/.guix-profile/share/X11/%l/%T/%N%C%S:\\
>     > +$HOME/.guix-profile/share/X11/%T/%N%C%S:\\
>     > +$HOME/.guix-profile/share/X11/%L/%T/%N%S:\\
>     > +$HOME/.guix-profile/share/X11/%l/%T/%N%S:\\
>     > +$HOME/.guix-profile/share/X11/%T/%N%S:\\
>     > +$HOME/.guix-profile/lib/X11/%L/%T/%N%C%S:\\
>     > +$HOME/.guix-profile/lib/X11/%l/%T/%N%C%S:\\
>     > +$HOME/.guix-profile/lib/X11/%T/%N%C%S:\\
>     > +$HOME/.guix-profile/lib/X11/%L/%T/%N%S:\\
>     > +$HOME/.guix-profile/lib/X11/%l/%T/%N%S:\\
>     > +$HOME/.guix-profile/lib/X11/%T/%N%S:\\
>     > +/run/current-system/profile/share/X11/%L/%T/%N%C%S:\\
>     > +/run/current-system/profile/share/X11/%l/%T/%N%C%S:\\
>     > +/run/current-system/profile/share/X11/%T/%N%C%S:\\
>     > +/run/current-system/profile/share/X11/%L/%T/%N%S:\\
>     > +/run/current-system/profile/share/X11/%l/%T/%N%S:\\
>     > +/run/current-system/profile/share/X11/%T/%N%S:\\
>     > +/run/current-system/profile/lib/X11/%L/%T/%N%C%S:\\
>     > +/run/current-system/profile/lib/X11/%l/%T/%N%C%S:\\
>     > +/run/current-system/profile/lib/X11/%T/%N%C%S:\\
>     > +/run/current-system/profile/lib/X11/%L/%T/%N%S:\\
>     > +/run/current-system/profile/lib/X11/%l/%T/%N%S:\\
>     > +/run/current-system/profile/lib/X11/%T/%N%S\"
>     
>     That’s unreasonable IMO.
>
> This is merely the default value that the Xt library sets, but I
> have simply substituted "/usr" with "$HOME/.guix-profile" and
> repeated it substituting "/run/current-system/profile".
> It is a large string, but why is that a problem?

It’s ugly, there’s duplication, and hackers will not dare to touch it.

> We can cut down on the size of this string iff we can somehow
> guarantee that no package ever ships a file in any of those locations.
>
> Some "solutions" (in my order of preference) are:
>
> * The size of the above list can be halved, by dropping either the
> .../lib/... or the .../share/... items - we just have to then make
> sure that no package ships resource files in the one we drop.  Historically,
> resource files were always in .../lib (as still are all official
> sources from x.org) but recently third party packages have started
> putting them in .../share.
>
> * I *think* we could also get away with further reducing the set to 
>     "$HOME/.guix-profile/lib/X11/%T/%N%S:
>     /run/current-system/profile/lib/X11/%T/%N%S"
> because, all the Xt dependent packages I've seen so far, put their
> resource files there.  However, we cannot know what might get added
> in the future.

Right, if we do both, that’s already much better.

> * Hack the hard coded defaults in the libXt source to use the profile
> settings instead of /usr

Maybe we should just do that, no?  It’d be a local change, it would
achieve the same effect, and it would provide a good default.

WDYT?

I suppose there’s trickiness due to the fact that it’s C and we have to
concatenate strings…

> * Do what we had before:  Wrap *every* program which uses libXt in
> a script setting XAPPLRESDIR - This is sure to annoy users because
> it would override any XUSERFILESEARCHPATH they had set themselves.

Doesn’t sound great.

>     Is this motivated by the broken ctrl-click in xterm?  That thing used to
>     work, I wonder what happened.
>
> Xterm has never worked properly for me under GuixSD.  It "worked" under
> Guix on Debian, presumably because it found the resource files from
> the native installation.
>
> Xterm not working was what prompted me to find out the cause.
> But it will affect all and every package which provides X resource
> files as a shipped file.
>
> Anyway my general opinion is, that I agree that the value of this variable
> is rather long, but:
> 1. I don't see why that is a problem.
> 2. It is how the X Consortium intends and recommends it to be used.
> 3. A competent user will not be intimidated by it.
> 4. A naive user will never be aware of it anyway.
>
>
> For background information, see:
>
> * http://www.faqs.org/faqs/Xt-FAQ
> * The man page for XtResolvePathname
> * The file specs/CH11.xml in the libXt source.

OK.  Thanks for the info and everything!

Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]