On 16/03/15 17:35, Malcolm Cook wrote:
On Mon, Mar 16, 2015 at 2:19 AM, Stijn De Weirdt
<[email protected] <mailto:[email protected]>> wrote:
hi malcolm,
can you first clarify what this implies wrt accepting the license?
(what is the user agreeing to by setting this cookie?).
My understanding is that you in effect accepting the "Oracle Binary
Code License Agreement for the Java SE Platform Products and JavaFX":
http://www.oracle.com/technetwork/java/javase/terms/license/index.html
The question is whether this would be clear to someone install Java
using EasyBuild...
Is it OK to just accept this for them, programmatically, by default?
wrt the implementation, i'd suggest to start extending the java
easyblock with this functionality. if requires for other packages
too, we can always promote the code to some generic block or
framework (but i'm afraid oracle will change this method every
other month or so...)
If you are suggesting that I change just the java.eb to shell out and
download the tarball (if not already present) to "the right place",
well, then, in fact, I have already done exactly that for myself. But
I see that as a hack/temporary workaround - not something in tune with
the 'EasyBuild way' (such as I am trying to pick up on). Based on my
quick review of the source code, the 'EasyBuild way' to implement this
is as I suggest, requiring changes in a few different coordinated
places. I'm not sure I like/approve of this 'way', and thought someone
might advise that there is a better way to isolate the needed changes
just to the easyconfig file, but I certainly don't see it.
Or - what am I missing?
Stijn is suggesting to tackle this in the easy*block*
(https://github.com/hpcugent/easybuild-easyblocks/blob/master/easybuild/easyblocks/j/java.py),
not the easyconfig file (since that would require including it in all
Java easyconfigs, which results in lots of duplication).
Question remains whether it's OK to do this by default, though.
We can certainly support it, and require that people add something like
'auto_accept_license = True' in their Java easyconfig files...
regards,
Kenneth
stijn
On 03/16/2015 05:36 AM, Malcolm Cook wrote:
Hi,
eb Java-1.8.0_31.eb
Fails
Reading the easyconfig source code, I see it advises
“# download the tar.gz directly from
http://www.oracle.com/technetwork/java/javase/downloads/index.html“
So I download it (following
http://stackoverflow.com/questions/10268583/how-to-automate-download-and-installation-of-java-jdk-on-linux)
as:
wget -P ${PREFIX}/source/j/Java/ --no-check-certificate
--no-cookies
--header "Cookie: oraclelicense=accept-securebackup-cookie"
http://download.oracle.com/otn-pub/java/jdk/8u31-b13/jdk-8u31-linux-x64.tar.gz
and the eb now succeeds. Yay.
But, surely this should not persist. Something must be done!
Perhaps by
me!?!
Presumably the challenge is the check box which is opaque to
the easybuild
framework, and what is needed is to get such a header declared
in the
Java*.eb and contrive for it to be passed down.
Something like:
- change filetools.py download_file(*) to
- accept a new parameter, namely, headers={}
- change the call to urlopen as:
url_fd = urllib2.urlopen(urllib2.Request(url,
headers=headers), timeout=timeout)
- give EasyBlock a new instance variable, say,
source_url_headers
- modify the Java*.eb to include:
source_url_headers=[{"Cookie: oraclelicense" :
"accept-securebackup-cookie"}]
I think this should work and am willing to “cut my teeth” on
this project
with this small set of changes if y’all agree it is a good
approach to this
problem.
Do you?
Thanks
~ Malcolm Cook