Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Jan 2010 09:21:32 -0500
From:      "Stephane E. Potvin" <sepotvin@FreeBSD.org>
To:        Andrey Kosachenko <andrey.kosachenko@gmail.com>
Cc:        freebsd-eclipse@FreeBSD.org
Subject:   Re: Eclipse 3.5.1
Message-ID:  <4B4C856C.1090609@FreeBSD.org>
In-Reply-To: <4B490B18.1090609@gmail.com>
References:  <4B3A1084.90505@videotron.ca> <4B3B27CB.7040906@fstaals.net> <4B3BD120.40108@FreeBSD.org> <4B3CA19D.9050504@fstaals.net> <4B3DD4E3.60902@gddsn.org.cn> <4B3EF82E.3090708@gddsn.org.cn> <4B3F1E20.2020703@fstaals.net> <4B44AA3E.40306@FreeBSD.org> <76dec37a1001061654p697594e7xa840e5bf0e120d59@mail.gmail.com> <4B490B18.1090609@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Andrey Kosachenko wrote:
> Hi, guys,
> 
Hi Andrey,

> Just my 5 cents regarding plugins installation challenge.
> 
> Honestly speaking, I'd like to gain complete understanding how things
> should work, because it is very easy to screw up yourself with all that
> fancy stuff :(.
> 
> I'm also 100% able to reproduce plugins issue here: i.e. I can install
> any plugin by means of eclipse software installer (p2), installation
> goes smoothly but on the next launch installed plugin(s) won't be picked
> up. Okay, at this point I'd like to emphasize that there is _no_
> 'installation' issue, the real issue I believe that eclipse does not
> suck into the list of plugins installed by ordinary user.
> 
Ok, I admit it, I'm not officially completely baffled. I've been trying
for the last few days to reproduce all the plugin problems that have been
report without any luck so far. With all the installations that I have,
things just work as they should (tm).

> So far so good because we have an option here: i.e. put stuff manually
> into dropins folder (/usr/local/share/eclipse/dropins or somewhere else
> (actually where org.eclipse.equinox.p2.reconciler.dropins.directory
> points to)). p2 should take care about dropins/* updates (at least
> documentation states so). Though subsequent updates will be stored into
> ~/.eclipse/org.eclipse.platform_3.5.0_94697585/*. The latter looks a bit
> odd :).
> 
While this is a supported configuration, this area is reserved for global
plugins that will be installed by the ports infrastructure (although we're
not there yet and there is not port that does that at this time). You should
not have to put anything manually over there. All the plugins installed by
individual users should end up in their ~/.eclipse/org.eclipse.platform_3.5.0_xxxxxxxx/
directory.

> But I'm just thinking about complete p2 utilization (i.e. without
> involving installation via dropins ('watched directories' concept)).
> I did some tests and, unfortunately, haven't gained any solution which I
> really liked.
> 
> Briefly:
> - As far as I understood we stick with shared installation concept (case
> of Linux, BSD and alike systems), when the core stuff is installed
> somewhere in the system and only root is able to append stuff into that
> layout (so-called 'based' configuration);
> 
> - unprivileged user is able to utilize core stuff without additional
> settings;
> 
> - when it goes about additional plugins user may require then several
> options are possible:
> 
> 1) utilization of dropins folder (repeats old well-known 'wild west'
> approach with copying stuff into plugins/ features/ folders and
> subsequent lanunch with '-clean' parameter);
> 
> 2) 'bundle pools' (relatively new concept for multi-user/multi-instance
> configurations);
> 
> 3) various means assuming utilization of *.lnk, .eclipseextension,
> copying into plugins/* features/*, enabling legacy update manager and so
> forth...
> 
Here's how this is supposed to work:

1- Main eclipse p2 area (in $PREFIX/lib/eclipse) should only contain the base
eclipse framework, no additional plugins. As it's not writable by users, it
should never change during the lifetime of an installation (if it changed, the
port framework would complain upon deinstallation of the package).

2- Plugins installed by ports should end up in the $PREFIX/share/eclipse directory.
All users will end up with these plugins when they start eclipse

3- Plugins installed by individual users should end up in their ~/.eclipse directory
when installed via the plugin manager.

> Okay, let get back to plugins issue. AFAIU eclipse loads only stuff
> listed in /usr/local/lib/eclipse/configuration/config.ini. All plugins
> that ordinary user installs via p2 are stored into
> ~/.eclipse/org.eclipse.platform_3.5.0_94697585/*. Obviously ordinary
> user has no privilege to write into
> /usr/local/lib/eclipse/configuration/config.ini. So records go into
> ~/.eclipse/org.eclipse.platform_3.5.0_946975857/configuration/config.ini.
> And it looks like eclipse merges records from both config.ini files in
> order to build list of installed plugins, but it loads plugins _only_
> from the main (the first one) config.ini.
> 
This should not happen. The reconciler should load the two configs and
resolve things correctly. There used to be a problem with older eclipse
where the config.ini would be ignored if it was older than the eclipse
main config.ini file but it has been fixed since.

> So, the question is how to force it to load plugins from 'right'
> config.ini. Basically there is a room for various hacks here. For
> example it is possible to adjust
> org.eclipse.equinox.simpleconfigurator.configUrl. But this is not a case
> for mult-iuser configurations (okay, this is not quite true, because I
> believe it is possible to use @user.home, though I'm not sure if it is a
> good idea to put variables like that into shared configuration area in
> case of very strict policies). I also had no luck with
> osgi.configuration.cascaded set to 'true'...
> 
> Okay, to make a long story short, seems so far I had in store only one
> very simple (but not elegant) trick which allows to do pure p2
> installation/updates. It works for me quite well:
> - install new eclipse as usual;
> - run eclipse under ordinary user (to create layout under ~/.eclipse);
> - exit eclipse application;
> - mv /usr/local/lib/eclipse/configuration
> /usr/local/lib/eclipse/configuration.orig;
> - run eclipse again; install all required plugins via p2; eclipse should
> pick up all required info from ~/.eclipse directory along with all
> locally installed plugins.
> 
> PS:
> I believe this is definitely not right way to go. And I don't like it.
> But I also dislike to move things around using dropins folder or
> whatsoever. I also assume that I have no deep understanding how things
> should work with brand new p2. So any corrections/notions/ideas are
> welcome.
> 

Ok, I need to find a way to reproduce this as it just works for me. Could you please
send me your eclipse configuration offline (it's fairly large). To get it, go into
Help->About Eclipse SDK, select the "Installation Details" button, and then the
"Configuration" tab. Send me the content of this pane. If possible, could you also
send along your error log (should be accessible via the "View Error Log" button in the
same window. Please use a stock configuration with the plugins installed via the
plugin manager if possible.

Thanks,

Steph
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAktMhWwACgkQmdOXtTCX/nvibACgjCRtS29j7xrPKvbRZ35N8bzg
at4AnRwFgu5CH0GMzOCXVuDtk22zl6Jm
=vlcU
-----END PGP SIGNATURE-----




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B4C856C.1090609>