FYI, this would also apply to Qt, as that build accepts the license 
programmatically as well.



Sent with Good (www.good.com)


-----Original Message-----
From: Kenneth Hoste [[email protected]<mailto:[email protected]>]
Sent: Monday, March 16, 2015 11:10 AM Pacific Standard Time
To: [email protected]
Subject: Re: [easybuild] Java appears to require manual intervention, and a 
proposed strategy to fix.



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
​



Reply via email to