Eclipse as part of the ports/java tree? [Was freebsd eclipse plugins & mailing list]

Herve Quiroz hq at freebsd.org
Tue Aug 30 15:26:44 GMT 2005


David,

I pretty much agree with all that Greg already said but still there are
some facts I think you should be aware of if you actually wish to
improve eclipse support in the ports tree...

On Fri, Aug 26, 2005 at 05:20:38PM -0700, Vizion wrote:
> >I'm not sure how thats an argument for creating a non-virtual eclipse
> >category.  Would you care to explain?
> 
> To hell with the pedantic label -- call it what you like - virtual or 
> non-virtual what matters is the reality of access and support to the freebsd 
> community that comes from the way in which we organize our files and install 
> the client rich applications and tools.
> 
> here is what I think would work:
> ports/eclipse/eclipse.v.x.xxx
> .................../eclipse.v.x.nnn
> ports/eclipse/plugins/puginlabel1
> ports/eclipse/plugins/pluginlabel2
> ................................/pluginlabelN
> ports/eclipse/misc/file1
> ports/eclipse/misc/file2
> ............................/fileN
> 
> Scattering eclipse modules and plugins over the whole of the ports tree would, 
> I believe, be both counterintuitive, counterproductive and 
> confusing.ports/eclipse

No tool, whatever its "usefulness", deserves to have its own ports tree
in the ports tree. That's indeed what you suggest in your message. The
way the ports tree currently works is somewhat well defined in many
locations (the Porter's Handbook mainly) and we, as commiters, tend to
ensure that the current ports system provides enough flexibility so that
no port would need some special treatment to fit in the ports tree.

I suggest that we identify the features needed in the ports system to
improve the support of Eclipse plugins so that we may improve the ports
sytem rather than just make an exception of Eclipse.

Actually, this is the way it works for all plugins-type ports in the
tree: each plugin is a new port and, as a port, it gets a list of
categories, the first one being its main category. Hence it may happen
that the plugins are scattered amongst different directories. And I
can't see why this is a problem.

Take as an example the textproc/jdictionary port. There are many plugins
that are each located in a language-specific category. Now you may think
that it is troublesome to have them scattered but if all you really need
is to be able to find all plugins that are available for jdictionary,
then you are indeed provided with enough support in the ports tree:

$ /usr/ports/Tools/scripts/portsearch -n jdictionary

  [...]

Port:   hu-jdictionary-eng-hun-expr-1.4_2
Path:   /usr/ports/hungarian/jdictionary-eng-hun-expr
Info:   JDictionary plugin: English-Hungarian expression dictionary
Maint:  janos.mohacsi at bsd.hu
Index:  hungarian textproc
B-deps:
R-deps: XFree86-libraries-4.5.0 expat-1.95.8_3 fontconfig-2.2.3,1 freetype2-
        2.1.10_1 javavmwrapper-2.0_5 jdictionary-1.8_2 jdk-1.4.2p7_1
        pkgconfig-0.17.2 urwfonts-1.0

  [...]

Now, regarding the fact that all plugins would share the same code and
thus need to have specific support in bsd.port.mk, let's take another
look at jdictionary:

$ ls /usr/ports/textproc/jdictionary/*.plugin

Makefile.plugin
pkg-plist.plugin

Hence each plugin is quite short. For instance,
/usr/ports/hungarian/jdictionary-eng-hun/Makefile just contains a few
lines and inherits most of its logic from Makefile.plugin:

  MASTERDIR=	${.CURDIR}/../../textproc/jdictionary

  .include "${MASTERDIR}/Makefile.plugin"

Moreover, bsd.port.mk already contains more than 5000 lines of quite
complex logic. You may indeed advocate for some bsd.eclipse.mk (and no,
Eclipse logic will probably never hit bsd.java.mk as far as I am
concerned) but I can't see the point when you can just have some
Makefile.plugin in /usr/ports/java/eclipse.

I admit I am not using Eclipse myself (using rather vi, Maven, Ant and
even some Makefiles) so I didn't feel too concerned about the effort in
the first place. Moreover, I was too busy with other stuff to get
involved in the process earlier. If I am to throw out my two cents on
the freebsd-eclipse effort, I would say that you just lost even more
commiters for the Eclipse cause. I, for instance, will probably never
have a chance to work on the Eclipse framework now that there is a
specific mailing list (that I obviously won't subscribe to).

> The Vaporware to which I am referring are applications we do not currently 
> have on the freebsd platform but are being developed for other platforms. If 
> we are not careful freebsd will become no more nor less than a linux 
> emulation machine!

[...]

> Why go suboptimal?

[...]

> A tool is a tool -- freebsd is not a religion but a set of tools. We do not 
> need sacred relics but the flexibility to change. If the freebsd structure is 
> so rigid that  establishing an /ports/eclipse/ hierarchy is complicated then 
> we need to use our flexible minds to design a more flexible solution.

[...]

> The interest is going to other platforms because people in the freebsd 
> community do not have the support from the eclipse community. The eclipse 
> community is therefore enlarging the linux base. We need to turn that around 
> and focus on the future not the past.

[...]

> I am not going to put in that kind of effort and simultaneously fight a 
> political battle to enable people to simply access the results. If freebsd is 
> satisfied with doing it in a "suboptimal fashion" then why should I or anyone 
> else bother? If the  structure is not there to support it and neither will 
> anyone else.
> 
> If the eclipse hierarchy was organized the way I suggest then the all the 
> plugins could be very quickly incorporated into the port tree 

Even if it may seem like political battles to outsiders, FreeBSD is IMHO
more a matter of discussing things so that we take into account enough
required (or foreplanned) features and end up implementing a somewhat
flexible framework.

I don't think you will get much attention from other commiters if you
introduce things as "the one true approach" compared to the "suboptimal
fashion" that is, by your word, the current state of the ports system.

Let's rather discuss the real motive here: improve Eclipse plugin
support in the ports tree. Again, it has nothing to do with the
greatness of Eclipse nor the personal feelings of commiters towards
Eclipse. In the later case, I would probably already have done some "cvs
remove" on /usr/ports/java/eclipse a long time ago. :-)

Together with the freebsd-java community we have been working on
refactoring the Java subsystem for years so that it would provide *us*
the support *we* needed (that is, not only to attract more developpers
to FreeBSD from Linux). It took quite some time and some lengthy
dicsussions to get our bsd.java.mk subsystem added to the tree and we
are speaking of more than 300 Java ports here. So unless we manage to
use a similar apporach for Eclipse as for jdictionary, you will probably
end up battling a long time, advocating for a rework of the whole ports
tree when 20 plugins ports are indeed concerned.

That said, I don't mind contributing to your efforts if you need some
advices or patch reviews. OTOH I won't be subscribed to freebsd-eclipse
to please CC me if you wish me to help you.

Now, because the 'java' category issue is quite often raised from the
grave, I am starting to think we should indeed get rid of the category
once and for all. I'll post on this topic in a separate message though.


Herve


More information about the freebsd-java mailing list