Subject: bug#15549: hydra.gnu.org uses nontrivial and nonfree javascript

From: [email-masked] (Ludovic Courtès)
Date: Mon, 07 Oct 2013 22:02:06 +0200

Hi,

[email-masked] skribis:

> If I go to http://hydra.gnu.org/jobset/gnu/master with Firefox, addon
> GNU LibreJS 5.4 [1] reports this:

Thanks for the report!

>     List of accepted JavaScript in
>     http://hydra.gnu.org/jobset/gnu/master
>
>     this script has been tagged as free software by LibreJS authors:
>     http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
>
>
>     List of blocked JavaScript in
>     http://hydra.gnu.org/jobset/gnu/master
>
>     NONTRIVIAL: eval has been found in code:
>     http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js

So jquery itself is free, but since it’s using ‘eval’ it might be
evaluating third-party non-free code, is that right?

>     NONTRIVIAL: eval has been found in code:
>     http://hydra.gnu.org/static/bootstrap/js/bootstrap.min.js

Same here.

>     This script is detected as nonfree, external, and as defining
>     functions or methods:
>     http://hydra.gnu.org/static/js/bootbox.min.js

That file points to http://bootboxjs.com/license.txt, which is the
MIT/X11 license.

So do I get it right that it’s just a matter of letting LibreJS know
about it?

>     This script is detected as nonfree, external, and as defining
>     functions or methods:
>     http://hydra.gnu.org/static/js/common.js

That file is actually part of Hydra, which is GPLv3+:

  https://github.com/NixOS/hydra/blob/master/src/root/static/js/common.js

>     This script is detected as inline, nonfree, defining functions or
>     methods, and the rest of the page as loading external scripts:
>         $(function() { makeLazyTab("tabs-jobs",
> "http://hydra.gnu.org/jobset/gnu/master/jobs-tab"); });

This comes from Hydra’s source:

  https://github.com/NixOS/hydra/blob/master/src/root/jobset.tt

> Is it possible to use only free javascript for this page?

AFAICS it’s actually the case.  However, all this lacks the right tags
for LibreJS to recognize it.

Could you tell us what’s needed to make it work?

I can then submit a patch for Hydra itself.  It would be neat if someone
else would submit the JQuery/Bootstrap parts, though.

Thanks,
Ludo’.