Re: [gnome-flashback] Bug 647927 LIBPANEL_APPLET_DIR



Hi Lanoxx,

Am 24.10.2013 11:11, schrieb Lanoxx:
Hi,

I have tried to understand the problem behind the LIBPANEL_APPLET_DIR
macro and the issue discusses in bug #647927
(https://bugzilla.gnome.org/show_bug.cgi?id=647927).

I think the behavior as shipped is absolutely correct, and the bug
reporter is in error.

Let me elaborate:
A casual user, that compiles and installs applets to /opt/whereever, but
uses a system-wide gnome-panel (or one int /opt/somewhereelse ), still
_needs_ to install into the directory that gnome-panel actually will
look at. Yes, that might (annoyingly) prompt the user for root rights,
correct. But if gnome-panel cannot find the new applet, because the
build system made up a path on the spot, that'll be a quite worse user
experience.

We have the same problem in gnome-panel btw. for installing the xsession
and gnome-session files, as well es dbus services and gsettings schema
files. We don't handle of of these cases well yet.


Distributions would typically compile with --prefix=/usr and use
something like fakeroot to avoid root permission issues.

As a possible work-around for weird builds or distribution problems,
note that you can create special local-only .pc files that will override
the normal ones. They need to be named like
libpanel-applet-4.0-uninstalled.pc (refer to the pkg-config manual for
details).

The solution that the bug suggests is to replace LIBPANEL_APPLET_DIR
macro by

    appletdir = $(datadir)/gnome-panel/4.0/applets

but then we actually hard code 4.0 in a lot of places. Currently we
actually do neither of both in gnome-panel, instead we have:

    appletdir = $(appletsdir)

and appletsdir is defined in configure.ac as:

AC_SUBST([appletsdir],"\$(datadir)/gnome-panel/\$(LIBPANEL_APPLET_API_VERSION)/applets")


LIBPANEL_APPLET_DIR on the otherhand should expand to:

AC_SUBST([appletsdir_pkgconfig],"\${datadir}/gnome-panel/\${libpanel_applet_api_version}/applets")


which is actually almost the same, but I cant find the place where its
actually defined?
None of these solutions, when compiling out-of-tree applets, will
actually cover the above use-case, and so are no-gos in my book.


Does anyone on this list have enough automake knowledge to explain
whats going on?

See also commit: c45e8043dc107a7dff1c7eb46074f6d85724ad13 (by Vincent
Untz in 2011-01-31)
The autoconf magic here is just the initial definition for the path for
_the currently-built installation of gnome-panel_ (and the
libpanel-applet-4.0.pc that should later allow for compatibility with it).

Once that is built, the external applets _should_ try to install to the
directory derived at panel configure time.


Cheers
  Philipp

-- 
Philipp Kaluza
Ghostroute IT Consulting



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