guix-devel
[Top][All Lists]
Advanced

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

Re: wrap-program


From: Ludovic Courtès
Subject: Re: wrap-program
Date: Sat, 27 Sep 2014 11:20:19 +0200
User-agent: Gnus/5.130011 (Ma Gnus v0.11) Emacs/24.3 (gnu/linux)

Federico Beffa <address@hidden> skribis:

> 1. GSettings schemas: More than schemas compilation, the problem is that
> the schemas are by default expected to be in $datadir/glib-2.0/schemas
> (with $datadir usually being /usr/share).  In spite of this, other
> directories can be specified with the help of the environment variable
> $XDG_DATA_DIRS.  Since at glib-2.0 compiled time we can't know the path
> of future application installations, we may want to define

Right, that’s one of the reasons why the ‘glib’ package defines it as
its search path (see glib.scm.)

> 2. gtk-3.0 modules: gtk+ looks for modules (like libcanberra.so) in
> locations specified by
>
>    a. $GTK_PATH,
>
>    b. $libdir/gtk-3.0/modules, with $libdir being the one specified at
>    gtk+-3.0 ./configure time OR $GTK_EXE_PREFIX/lib.
>
> Option a. is inconvenient because that variable is used by both,
> gtk+-2.0 and gtk+-3.0, easily leading applications compiled with one
> version to find incompatible libraries.
>
> Option b. is more attractive.  Again, at compile time we do not know the
> location of future modules installations: Take emacs: it looks in the
> gtk+-3.0 directory $libdir/gtk-3.0/modules.  However, it is looking for
> a module installed by libcanberra which is not even an input to the
> emacs package.  For this reason we should probably define
>
> GTK_EXE_PREFIX="$HOME/.guix-profile"

That would be easy and could be defined in /etc/profile on the
standalone system.

However that would force users to install GTK+ in their profile so that
the modules it comes with are found, right?  This would be inconvenient.

> We may just want to check that: (i) paths defined in environment
> variables are not duplicated by 'wrap-program' definitions (wrap
> launched by wrap) and (ii) if the variable is already defined (for "non
> guix" reasons), we may want to append the existing value.

Yes, this is the preferred solution, I think (and I think it’s this case
it’s OK to have these two variables leak in sub-processes, as discussed
with Mark.)  However, we’d like to factorize the extra phase that does
the wrapping, so we don’t repeat it for each and every program.

> The only problem I see right now is if a program is launched by a user
> which does not have $HOME/.guix-profile (like a service).  In that case
> there could be a default profile.

I think these are mostly GUIs, unlikely to be launched by a service.

> This could also serve the second purpose of providing initial default
> applications (like guix itself!) to all users on "guix on distro"
> systems.

Hmm what do you mean?

Thanks,
Ludo’.



reply via email to

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