Hi Fotis,
On Mon, Mar 16, 2015 at 2:21 AM, Fotis Georgatos <[email protected]> wrote:
>
> Hi Malcolm,
>
> Yes, your approach w/c/should work!
>
> I am unsure if including the proposed workaround hardwired in mainstream
> easybuild
> would be the long-term optimal approach (think who could complain) but
> there is a way around that too:
>
> - What if the headers-customisation are living in a file external to
> easybuild and fed as an extension?
>
>
This sounds good.
So, we would still change download_file as I suggested, to:
url_fd = urllib2.urlopen(urllib2.Request(url, headers=headers), timeout=timeout)
However, the value of headers would come from some other location/file.
How about we create a new class variable in easyblock.py called
`download_headers` with a default value of {} and have `obtain_file()` pass
it to `download_file`. Then we follow Stijn's suggestion, and modify the
easyblock java.py to set `download_headers` correctly. Then, for
distribution, we comment it out with the remark `#uncommenting this code
enable automated downloads and accept the oracle license .`
I still am not entirely sure about the LEGAL aspect of this... does
un-commenting a line of code serve as well as clicking a checkbox on a web
page for accepting a software license?
> I think that kind of approach is more passable and it is up to users to
> swap headers-customisation files
> (ie. implying consent to what the headers mean or/and take compliance on
> their own hands)
>
> Fotis
>
> On Mar 16, 2015, at 4:36 AM, Malcolm Cook <[email protected]> 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
> >
>
> cheers,
> Fotis
>
>
> --
> echo "sysadmin know better bash than english" | sed s/min/mins/ \
> | sed 's/better bash/bash better/' # signal detected in a CERN forum
>
>
>
>
>
>
>
>