Skip to main content

The Need for Motif

29 replies [Last post]
neognomic
Offline
Joined: 2007-02-15
Points: 0

I need some clarification.
Sorry if it looks a bit long but I try to be clear and that takes extra words.

Sun is doing good, ithink, but this ''must use Motif 2.1'' for Linux build has my head spinning just a little.
First, AFAIK, nobody in the OSS/GPL community uses Commercial Motif. Commercial Motif is bad(license), :).
Either lesstif or openmotif is used. Sometimes both depending on application.
openmotif has Open Group Public License.
lesstif is LGPL license.

(1)
Will JDK build properly with openmotif?
(1a)
openmotif 2.1? or 2.2? or 2.3?
Which, if any will work?
(*) Using openmotif-2.1 presents some issues(6+ years of issues...) but I will defer until (1a) is answered.

(2)
How about building properly with lesstif?
The lesstif devel more or less stopped(POV) at motif 2.1 compatibility so I was thinking that maybe it would work. I know what they(lesstif) say but after 6+ years I also know what they have done. I greatly appreciate the efforts but, no, lesstif is not a Motif 2.2 compatible program, or even a full 2.1-compat for that matter.
Anyone know?

(3)
openmotif 2.3 is a parallel dev of openmotif to extend it(their words; I'd call it a fork ).
MotifZone(part of ICS) lists Sun as a Commercial Motif user. I would like to know if that use also included unprivileged feedback for coding so that openmotif-2.3 can be used to build JDK-OSS-GPL.
I.e., will HotSpot build with openmotif 2.3 on a Linux 2.6.17 or greater box(all other req's being met of course)?
(3a) If not, is Sun able to do that?
(3b) -or at least can Sun provide developers with knowledge of what needs to be done to make 2.3 usable for Sun Java build and what is expected timeline for that?
( OpenMotif 2.3 project brings some nice widgets to the code. )

I have built part of the JDK-OSS and would like to finish a proof of concept build.
I am, if you cannot tell, pretty frigging ecstatic about Java-OSS_GPL and am promoting it. The very best promotion is to get a good quality build into a distro so that end-users can use it and become ecstatic too, IMHO. ...Okay, so almost no 'user' will be ecstatic but you know what I mean, right?

Thanks very much for any assistance here!

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
robilad
Offline
Joined: 2004-05-05
Points: 0

They are getting it done, it's just an enormous pile of work. It's millions of lines of code with an active development history that goes back more than a decade.

Mozilla took 4.5 years[1] to re-license its full code base to the current MPL/LGPL/GPL combination. Sun's trying hard to get it done much faster, and judging by the OpenJDK team's presentations (and conversations) at FOSDEM, are tackling the remaining things to be done as fast as they can.

cheers,
dalibor topic

[1] http://weblogs.mozillazine.org/gerv/archives/2006/03/relicensing_complet...

neognomic
Offline
Joined: 2007-02-15
Points: 0

> Roughly, jdk - java development kit, consists of JRE
> + javac + other stuff. JRE is hotspot + libraries.
> Currently we have only javac and hotspot sources
> released under OSS license. The rest is not yet
> opened.
>
> Dmitri

To clarify *my* thinking so we are in same ballpark at least, I'll expand on what I wrote.

The JDK is essentially compiler(javac), virtual machine(HotSpot), plus the ''-devel'' items of classes and other libraries needed for developing the Java applications( as well as the ''other stuff'').
The JRE does not have most of the ''-devel'' portion of the JDK and is consequently a lot smaller. The JRE is what everybody needs for Java.
The classes and libraries are what developers need. Developers are those who either develop Java applications or use Java in other applications. E.g., one who only builds a Java application that someone else developed will need the JDK for the referenced classes/libs. Off the top of my head I cannot think of a non-java application that uses some Java class which is only available from the JDK ...but there's bound to be one.

Of course the browser plugin, SA and some other things are in those as somewhat optional builds.
IMHO, the browser plugin is not really optional for any distib build, unless one actually likes being screamed at by users. ;)

The JDK has the whole ball of wax, so to speak. Get it done and one has everything.

I understand that Sun does not have the authority to release some of the sources so the JDK build will be somewhat tainted with items that are 'excepted' from the GPL via the classpath exception. According to what has been posted, this is perfectly legal and acceptable for this interim period while those sources are replaced one way(current OSS) or another(new OSS).
What I expected to get was a jdk7 that had some GPL and and some classpath exceptions as well as a few other GPL-compatible licenses(e.g., Apache, MPL..., ). That's not what I see.
For that matter, I don't even see the JRL( http://www.java.net/jrl.csp ). Instead there is a '' Pre-Release Software Evaluation Agreement '' which I presume comes from the fact that the bootstrap jdk( jdk-1.6.0_01-ea.x86_64 ) was used.
That's not how it is supposed to be according to what Sun has posted since November of last year or, particularly, since the Feb jdk7 items were made public.
There should be no ''Pre-release'' and no ''JRL'' in the newly built jdk7. Only GPL and GPL-compatible, the latter of which would include the classpath exceptions.
...

If this understanding is fundamentally wrong then i need to remove head and reinsert which can be a long process so the sooner it starts, the better. :))

trembovetski
Offline
Joined: 2003-12-31
Points: 0

I can see how all these namings, licenses, builds can be confusing.

So, let's go through this again:
1. the only pieces which were opened under GPL(+exception) so far
are javac and hotspot vm. (ignore the jtreg for now)
2. you can build them and get some binaries, but they're sort of useless without
the rest of the libraries which are part of Java Runtime Environment (like rt.jar,
native libraries, etc)
3. so, you can either just get a Sun JRE/JDK binary (say, from jdk7.dev.java.net), and replace the VM with the one you have built, and use the result for experimenting, etc
4. Or, you can get the full JDK source (still under JRL), and build it with, with the VM
you have built from the open sources, and experiment with the resulting hybrid.

At this point you can not build a fully operational JRE from GPL-licensed source,
because we have released nothing besides the javac and hotspot.

Soon you will be able to (well, mostly, with some binary plugs in the beginning for the stuff we can't open) - once we open the rest of the libraries' code.

Dmitri

neognomic
Offline
Joined: 2007-02-15
Points: 0

I'll clarify that with specifics.
Javaâ„¢ Platform, Standard Edition 6u1 Source Snapshot Releases
are, as you pointed-out, JRL licensed. That's fine for playing around but won't work to distribute. (At least not the way I understand the JRL...)

If one is at the OpenJDK home, https://openjdk.dev.java.net/, and chooses ''Downloads'' from the sidebar, one is directed to http://download.java.net/openjdk/jdk7/ where the hotspot, compiler and jtreg sources' links are located.
Both the compiler and VM are GNU General Public License version 2.

jtreg license is not shown. It is a mixed bag of ''ENTITLEMENT'' and copyright to protect IP. It's test binaries anyway and does not affect the jdk-oss-gpl build(beyond corrections due to any failure/abnormality they might detect.)

The VM & compiler are ''jdk7'' and should build as version 7. The compiler did/does but the VM does not.

neognomic
Offline
Joined: 2007-02-15
Points: 0

I think we are talking fruit and vegetables.

The compiler(javac) and HotSpot (VM) sources are released as OSS and GPL'd.

The jdk-source-kit-bundle(whatever the precise name is today) is a mixed bag.

I am building the jdk by building from the HotSpot sources because it appeared to be the only way to get a oss-gpl build, with classpath exceptions at this time.

trembovetski
Offline
Joined: 2003-12-31
Points: 0

> I am building the jdk by building from the HotSpot sources because it appeared to be the only way to get a oss-gpl build, with classpath exceptions at this time.

oss-gpl build of what? You can only get "oss-gpl" build of javac and hotspot, that's it. You can not at this point build an oss-jdk build - the jdk sources are under a different license.
You can not "build the jdk from the hotspot sources".

I guess we are not understanding each other, as you pointed out =)

Roughly, jdk - java development kit, consists of JRE + javac + other stuff. JRE is hotspot + libraries. Currently we have only javac and hotspot sources released under OSS license. The rest is not yet opened.

Dmitri

neognomic
Offline
Joined: 2007-02-15
Points: 0

HotSpot FAQ #5
[quote]
5. What do I have when the build is done?

You should have a completely functional JDK with the newly-built libjvm.so's installed in it. You will have built both the "product" and "fastdebug" libjvm.so's for both the "client" and "server" JDK. (That's four of them.) If you supplied a JDK that has both the product and fastdebug versions of the JDK, then all four virtual machines should work. ...
[/quote]

In fact, that is what appears to be in the build. Without the complete tree(very long):
[code]
You are at { .../BUILDIT/hotspot/build/linux }
#> ll
total 64K
-rw-rw-r-- 1 385 2007-02-01 06:46 adlc_updater
-rw-rw-r-- 1 2.9K 2007-02-01 07:55 build.sh
drwxr-xr-x 7 4.0K 2007-02-18 15:01 export-linux-amd64/
drwxr-xr-x 12 4.0K 2007-02-18 15:01 jdk-linux-amd64/
-rw-rw-r-- 1 13 2007-02-01 06:46 jdk_version
drwxr-xr-x 9 4.0K 2007-02-18 14:48 linux_amd64_compiler2/
drwxr-xr-x 2 4.0K 2007-02-18 14:54 linux_amd64_docs/
-rw-rw-r-- 1 12K 2007-02-01 07:55 Makefile
drwxrwxr-x 2 4.0K 2007-02-13 03:41 makefiles/
-rw-rw-r-- 1 152 2007-02-01 06:46 platform_amd64
-rw-rw-r-- 1 147 2007-02-01 06:46 platform_i486
-rw-rw-r-- 1 152 2007-02-01 06:46 platform_sparc
-rw-rw-r-- 1 1.3K 2007-02-01 06:46 Queens.class
-rw-rw-r-- 1 1.3K 2007-02-01 08:01 README
[/code]

The binaries do work. How well I don't know yet. I only know they are not version 1.7 which they should be.
Of course, I probably did not build it correctly ... first time, ya know.

neognomic
Offline
Joined: 2007-02-15
Points: 0

Ah, left out the exec:

#> ./build/linux/jdk-linux-amd64/bin/java -version
java version "1.6.0_01-ea"
Java(TM) SE Runtime Environment (build 1.6.0_01-ea-b03)
Java HotSpot(TM) 64-Bit Server VM (build JAVA-SUN-GPL-20070218.1448, mixed mode)

neognomic
Offline
Joined: 2007-02-15
Points: 0

The key seems to be to use XAWT by default but I have not found how to do that yet.
I am going to look today and see if I can find the MAWT and XAWT build-stuff and where in makefiles they might be.
Maybe we get lucky and find only a few things that have to be adjusted...

Thanks for the info. Every little bit helps. :)

neognomic
Offline
Joined: 2007-02-15
Points: 0

Okay. The build doc has been fixed, mostly, for this question anyway and clarifies the need for motif:
[quote]
Motif headers are required for building the Linux JDK.

Motif version 2.1 libraries are optional and required only if Motif version of Java Toolkit (MToolkit) is desired.

NOTE: to build optional MToolkit, Motif 2.2 headers will not work.
Also, neither implementation of open Motif libraries will work for this.
[/quote] (slightly reformatted for clarification)

I'm not sure if the Motif headers requirement is acceptable ...but that's another question.

Thanks for all the input. MOST appreciated! :)

neognomic
Offline
Joined: 2007-02-15
Points: 0

Just adding that the quote is from the Java 7 build instructions. The java 6 instructions still say the libraries are required...

trembovetski
Offline
Joined: 2003-12-31
Points: 0

>
Just adding that the quote is from the Java 7 build instructions. The java 6 instructions still say the libraries are required...

Yep, that's expected. At this point we're working on opening only the JDK 7 code base.

Regarding motif: the headers are needed because of some constants that are used throughout the code (not only in the Motif toolkit). However, the headers are freely distributable, so it shouldn't be a problem.

Thanks,
Dmitri

neognomic
Offline
Joined: 2007-02-15
Points: 0

> Yep, that's expected. At this point we're working on opening only the JDK 7 code base.

I figured that it would be Java-7 or a Java-OSS-7 after I built the compiler and it was version 1.7. If that is official Sun policy, I'd like to see someone from Sun post that Java 6 will be the last non-free Java from Sun, other than contracts of course, on the FAQ page where everybody can read it. I.e., It would be nice if Sun would point people to Java-OSS so that we do not waste any time with JDK 6. ...just a suggestion, :).

> Regarding motif: the headers are needed because of
> some constants that are used throughout the code (not
> only in the Motif toolkit). However, the headers are
> freely distributable, so it shouldn't be a problem.

Okay, thanks. Freely distributable by whom? I.e., where can we obtain the source?

> Thanks,
> Dmitri

Thank _you_ for your time & effort.

trembovetski
Offline
Joined: 2003-12-31
Points: 0

Both openmotif and lesstif headers would work. They are distributed with most
distributions' dev tools.

Dmitri

neognomic
Offline
Joined: 2007-02-15
Points: 0

Thanks Dimiti. :)
( I applied the 'Note' to the headers which was of course S&S. )

Any ideas on when a semi-'normal' person can get access to SVN for the OSS buildable parts and download it?
...for that matter, any ideas on when a normal person can even get read-only access? :)

trembovetski
Offline
Joined: 2003-12-31
Points: 0

Currently you can only get the source under JRL license from here:
http://download.java.net/jdk7/
Unfortunately there's not yet a svn repository (that I know of), only tarballs
which contain both what will be "open" and "closed" code bases.
Note that we're still in process of integrating oss-related changes into the workspace,
so some stuff is not there yet.

A read-only svn repository is in plans, I think - it should be ready by the OSS launch.
Then, when we switch to Mercurial, you will be able to use that as well.

Thanks,
Dmitri

neognomic
Offline
Joined: 2007-02-15
Points: 0

...

http://download.java.net/jdk7/ :
[quote]
JDK 7 Source under the JRL license

* jdk-7-ea-src-b09-jrl-01_mar_2007.jar, 71.79 MB (or)
* Subversion(respository (read-only) | Readme)
[\quote]
Subversion(respository (read-only) link:
https://jdk-jrl-sources.dev.java.net/

which as expected, after my login, gets:
[quote]
Error

Your account does not have the "Project Page - View" permission needed for you to access the page you requested in the jdk-jrl-sources project (view your permissions). Either ask the project administrator for more permission, or log in using a different account.
[\quote]

The README states one has to have special permission to access the SVN. That is *not* very ''open'' ...

trembovetski
Offline
Joined: 2003-12-31
Points: 0

> That is *not* very ''open'' ...

It is open enough for the current state of affairs. I guess currently you need to sign the
contributor agreement, and get a "contributor" role for your account in order
to be able access the svn repository.

Again, reiterating. This is how you get access to the currently closed source code,
under the JRL license.
After the open source launch you will be able to get access to GPL-ed source without
all this.

I think it's quite simple:
- want access to the full source now (including svn access) -
sign the agreement and accept the JRL.
- want the OS bundle - wait for the full j2se OS launch.

Dmitri

neognomic
Offline
Joined: 2007-02-15
Points: 0

With all due respect, no, it is not simple.

I, and I think anybody with 2cents of sense, am not going to look at code that can compromise work. The spiel about the read-only access does not say if the proprietary code has been excluded or not.

A lot of people need Java-OSS-GPl to do work. While Sun takes their sweet time about getting it done, we wait.

Here's a typical comment
[quote]
As for me, I have several projects that I have been holding off on the last few months, until Java can get open sourced, because I am really looking forward to being able to write code once, and then hand out source and binaries to my friends that all run different platforms.
...
[/quote]

That particular quote was in Nov. last year so he is *still* waiting. Many are in, more or less, the same situation.

Sun announced this *last year* in Nov. It has been plenty long enough to get SVN access available for download, much less getting read-only setup for anybody. ...
(the proprietary parts should already be split-off...)

The first half of the ''release in the first half of 2007'' is almost gone but progress looks to be the same as it was in January. Sun needs to get off the stick here and get it done.

...

trembovetski
Offline
Joined: 2003-12-31
Points: 0

> Sun needs to get off the stick here and get it done.

Yeah, stuff always looks easy when you're not the one doing the work, doesn't it?

Auditing millions lines of code, rewriting or replacing major parts of the product, modifying the build system to produce different products takes surprising amounts of time.

It took Solaris folks 5 years. We're doing it in a year. Have patience.

Like I said, you have a choice. Use the closed source now or wait for the fully opened sources.

Dmitri

trembovetski
Offline
Joined: 2003-12-31
Points: 0

I believe motif will not be required for building openjdk (XAWT toolkit will be used by default).

Dmitri

neognomic
Offline
Joined: 2007-02-15
Points: 0

Thank you.

The Sun doc need to be amended because they specifically state that Motif 2.1 is required for the Linux build:
http://download.java.net/jdk6/6u1/promoted/b03/docs/build/README-builds....

..perhaps I misunderstood but the 'build instructions' point to that page.
Although they say motif libs are included, the Hotspot VM source does not have them.
Besides, Commercial Motif cannot be used for an OpenJDK and GPL'd build anyway...

I have been spinning wheels trying to find best resolution for motif. I suppose I'll test a build then without motif or openmotif installed.

linuxhippy
Offline
Joined: 2004-01-07
Points: 0

as far as I know Motif is not used by default at all - some parts (the older MAWT) rely on Motif for compilation and are delivered as part of java by default (with 5.0 and 6.0) but there is NO motif runtime dependency.

lg Clemens

neognomic
Offline
Joined: 2007-02-15
Points: 0

Hey, :)
Thanks! Good to know there is no external runtime dependency.
I have not yet done the VM build properly ...still gathering info and dependent files.

The problem is that the doc's(previous link) say there is a build dependency. From your helpful comment I presume that means the make is a static build. That's okay/good but I cannot build a 1.7-opensource-GPL JRE/JDK with Commercial Motif lib. The commercial license is not acceptable.
...
Nevertheless, with the javac-1.7-opensource, the VM source, the required libraries(all GPL compatible) and the few 'excepted' classes(binaries) a GPL-compatible JDK should be built from the VM. That's what Sun states
[quote]You should have a completely functional JDK with the newly-built libjvm.so's installed in it. [/quote] and that is what I am trying to do.
Maybe today I will get to point of trying the build again, this time thinking that it should build.
Your input was helpful. Thanks again.

ewin
Offline
Joined: 2005-07-15
Points: 0

My understanding is it is a build requirement because:

- Motif headers are needed to build MAWT

- MAWT, while old, is still part of Java 6

So:

- Since MAWT in Java 6 is not used by default, it should be possible to avoid building it and still getting a working jdk. But by default it is build.

- Not building and packing it will likely require some hacking in the build system (I didn't check).

trembovetski
Offline
Joined: 2003-12-31
Points: 0

Like I said, it's being taken care of. The oss bundle will build w/o motif.

Dmitri

neognomic
Offline
Joined: 2007-02-15
Points: 0

Hey !
Thanks for the comments.

Well I did not get to the point of trying without some *tif installed but I did build the VM on openSUSE with openmotif, CUPS, etc. installed. Twelve minutes and two 'Notes' with no errors.

Sun did a really good job with the makefiles. :) (thanks Sun folks!)

BUT what I got was not what I expected.
I expected a version 1.7-oss-gpl(or similar) for the new build.
The version reported seems to be a mixed bag of the jdk 1.6u1 and then there's a version that is 1.6. None say 1.7-opensource as I received from building the compiler. I searched and found multiple licenses which is okay but then there's that ''Sun'' experimental/preview license that is at the least confusing as to what it means.
I do not have that warm fuzzy feeling about the license ...

There's this name thing too. I respect Sun's insistence that ''Java'' can only be used if the oss-gpl build passes the tick tests. I can respect that ''JDK'' has a trademark associated with it but this makes naming the sucker to something that is recognizable by general public pretty hard. I'm thinking that for coherence, Sun needs to make the choice to call the build something that is unique and acceptable to Sun. We _really_ do not need 250 different names out in the open. It also makes the OSS & GPL build recognizable. It is not now.

I'll try the build without any *tif libs installed but if what the Sun docs say is true, it will not matter because the Motif libs are supplied with the bootstrap JDK. I.e., it will build without me installing lib*tif but something from libmotif is going to be in there anyway.
There must be someway to prevent the libmotif from being used that is relatively straight forward and won't bork the build or provide a less than perfect jdk-oss-gpl version. Any ideas or points to docs that non-Sun employees can obtain legally?

trembovetski
Offline
Joined: 2003-12-31
Points: 0

Please note that what you have now is _not_ the open-source GPL version of the source code, which hasn't been released yet.

What you have now licensed under the JRL (the Java Research License).

Dmitri

trembovetski
Offline
Joined: 2003-12-31
Points: 0

Just to clarify more: in the open-source version of the sources most of the issues you've mentioned will be addressed (including the motif-less build).

Dmitri