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