Hi all,

you can find my comments below the text of the license sections I commented on.

   =====================================================================
   ==  DO NOT PANIC!  This is a draft for discussion purposes only.   ==
   ==  It has not yet been approved. It does not yet apply to any     ==
   ==  software distributed by the Apache Software Foundation.        ==
   ==                                                                 ==
   ==  This TCK version is for use by JSR-defined projects releasing  ==
   ==  an official TCK for a JSR under JSPA 2.5.                      ==
   ==================================+==================================

                             Apache TCK License
                         Version 1.0, October 2003
                      http://www.apache.org/licenses/

            Copyright (C) 2003  The Apache Software Foundation.
         Everyone is permitted to copy and distribute verbatim copies
         of this license document, but changing it is not allowed.

                            TERMS AND CONDITIONS
           FOR USE, REPRODUCTION, DISTRIBUTION, AND MODIFICATION

   1. Licensing the Work.

      A. These terms and conditions for use, reproduction, distribution,
      and modification (the "License") apply to any original work of
      authorship (the "Work") containing a notice placed by the
      copyright owner (the "Licensor") indicating that the Work is
      licensed under the Apache TCK License, Version 1.0.

      B. The Work is distributed by the Licensor as a Technology
      Compatibility Kit (TCK), the suite of tests, tools, and
      documentation that allows an implementor of a Specification to
      determine if their implementation is compliant with that
      Specification, where the Specification is a current or proposed
      industry standard defined by one or more documents listed within

I think "industry standard" is a little far fetched, unless Apache Software
Foundation starts providing TCKs for standards proposed by
standardization bodies. Sun's desire to promote their APIs as an "industry
standard", a meaningless term unless we are talking about ISO, ECMA or
ANSI, shouldn't result in marketing speak polluting the license.

      the license notice; each such Specification is identified by
      title, revision label (or date if no label has been assigned),
      and Uniform Resource Identifier.

   2. You. "You" or "Your" means an individual or legal entity
      exercising permissions granted by this License. By exercising any
      of the permissions granted to You in Sections 4 through 9 herein,
      You indicate Your acceptance of this License and all of its terms
      and conditions.

   3. Contributors and Contributions.

      A. The Licensor and any individual or legal entity that
      voluntarily submits to the Licensor a Contribution to the Work are
      collectively addressed herein as "Contributors". For legal
      entities, the entity making a Contribution and all other entities
      that control, are controlled by, or are under common control with
      that entity are considered to be a single Contributor. For the
      purposes of this definition, "control" means (i) the power, direct
      or indirect, to cause the direction or management of such entity,
      whether by contract or otherwise, or (ii) ownership of fifty
      percent (50%) or more of the outstanding shares, or
      (iii) beneficial ownership of such entity.

Beside the obvious philosophical dicussion about how much in charge a
person is about their actions ("The devil made me contribute!"), this
paragraph's vague definition of control under (1) doesn't seem to make
much sense. I can make someone read this comment by posting it to the
mailing list, therefore I'm in control of that person because I
used my indirect power to directed the person to read using
"otherwise" means aka as posting? ASF, all your code belongs to me ;)

It's not obvious why that piece of legalese is in the license.

      B. A "Contribution" is the original version of the Work and any
      modification or addition to the Work that has been submitted for
      inclusion in the Work, where such modifications and/or additions
      to the Work originate from that particular Contributor, or from
      some entity acting on behalf of that Contributor.

      C. A Contribution is "submitted" when any form of electronic,
      verbal, or written communication is sent to the Licensor,
      including but not limited to communication on electronic mailing
      lists, source code control systems, and issue tracking systems
      that are managed by, or on behalf of, the Licensor for the purpose
      of discussing and improving the Work, but excluding communication
      that is conspicuously marked or otherwise designated in writing by
      the Contributor as "Not a Contribution."

How does one designate verbal communication in writing? An attempt to
be overly broad, yet so limited. Basically, anything you tell us
belongs to us, nyah nyah nyah.

There are situations imaginable where I could tell ASF about A, but
would have no right to contribute A to the ASF without being the
copyright holder. The 'ours by default' claim hidden in this license
may get in you trouble when you get lax on checking if people are
actually allowed to contribute the content of the conversation.

Example: During the discussion of a TCK test someone brings up an
excerpt from a regression test in Kaffe's regression test suite. ASF
can according to their license claim it as a contribution, and add it
to their TCK. If the TCK license turns out to be GPL incompatible, who
do I sue for copyright infringement: the ASF for violating the license
of my code, or the person that cited the code on an ASF mailing list?

      D. Any Contribution submitted by You to the Licensor shall be
      under the terms and conditions of this License, without any
      additional terms or conditions, unless You explicitly state
      otherwise in the submission.

   4. Contributor Grant of License. Subject to the terms and conditions
      of this License, each Contributor hereby grants to You:

      (a) a perpetual, non-exclusive, worldwide, fully paid-up, royalty
          free, irrevocable copyright license under its licensable
          copyrights in the Work to reproduce, prepare derivative works
          of, publicly display, publicly perform, sublicense, and
          distribute the Work and such derivative works; and,

      (b) a perpetual, non-exclusive, worldwide, fully paid-up, royalty
          free, irrevocable (subject to Section 5) patent license to
          make, have made, use, offer to sell, sell, import, and
          otherwise transfer the Work and derivative works thereof,
          where such license applies only to those patent claims
          licensable by such Contributor that are necessarily infringed
          by their Contribution alone or by combination of their
          Contribution with the Work to which such Contribution was
          submitted by the Contributor.

      No assurances are provided by any Contributor that the Work does
      not infringe the patent or other intellectual property rights of
      any other entity. Each Contributor disclaims any liability to You
      for claims brought by any other entity based on infringement of
      intellectual property rights or otherwise. You assume sole
      responsibility to secure any other intellectual property rights
      needed, if any.

   5. Reciprocity. If You institute patent litigation against a
      Contributor with respect to a patent applicable to software
      (including a cross-claim or counterclaim in a lawsuit), then any
      patent licenses granted by that Contributor to You under this
      License shall terminate as of the date such litigation is filed.
      In addition, if You institute patent litigation against any entity
      (including a cross-claim or counterclaim in a lawsuit) alleging
      that the Work itself (excluding combinations of the Work with
      other software or hardware) infringes Your patent(s), then any
      patent licenses granted to You under this License for that Work
      shall terminate as of the date such litigation is filed.

   6. Redistribution without Modification. You may reproduce and
      distribute verbatim copies of the Work as You received it, in any
      medium, provided that You conspicuously publish on each copy an
      appropriate copyright notice and disclaimer of warranty, keep
      intact all of the notices that refer to this License and to the
      absence of any warranty, and give any other recipients of the Work
      a copy of this License along with the Work.

   7. Redistribution with Modification. You may modify Your copy or
      copies of the Work or any portion of it, thus forming another work
      product based on the Work (a "Derivative Work"), and reproduce and
      distribute such modifications or the Derivative Work, provided
      that You also meet the following conditions:

      (a) You must give any other recipients of the Derivative Work a
          copy of this License along with the Derivative Work.

      (b) You must retain, in the source code of any Derivative Work
          that You distribute, all copyright, patent, or trademark
          notices from the source code of the Work, excluding those
          notices that only pertain to portions of the Work that have
          been excluded from the Derivative Work. If the Work includes a
          "NOTICE" file as part of its source code distribution, the
          Derivative Work must include a readable copy of the notices
          contained within that NOTICE file, excluding those notices
          that only pertain to portions of the Work that have been
          excluded from the Derivative Work, in at least one of the
          following places: within a NOTICE file distributed as part of
          the Derivative Work; within the source code or documentation,
          if provided along with the Derivative Work; or, within a
          display generated by the Derivative Work, if and wherever such
          third-party notices normally appear. You may add Your own
          notices alongside or as an addendum to the original NOTICE
          information. The contents of the NOTICE file are for
          informational purposes only and do not modify the terms and
          conditions of this License.

      (c) You must cause any modified files to carry prominent notices
          stating that You changed the files.

      (d) You must do one of the following:

          (1) remove from the Derived Work all tests that are specific
              to features of the Specification and all documentation
              describing the Specification and those specific tests; or

          (2) cause the Derived Work to be clearly and conspicuously
              labeled as "not the official TCK for the Specification"
              and "for research purposes only", and clearly and
              conspicuously identify within the documentation and
              packaging of the Derived Work that it is not the official
              TCK for the Specification, and further that passing the
              tests in the Derived Work does not indicate that an
              implementation has passed the TCK for the Specification.

I am not sure I parse that correctly: does that mean I can do (1) such
that I take a TCK, remove everything that refers to the specification,
and redistribute it as "The real TCK" without any labelling? Cute.

The restrictions on the labeling may make the TCK license GPL
incompatible. Other restrictions, like the clause that only if you pass the original TCK you can say that you passed it, may give the original contributor a lot of power to close out competing implementations by including references to code outside the specification in the TCK.


Example: If A wanted to make sure their competition wouldn't be able to pass a TCK, all they need to do would be to put in a test case that links to some internal, unspecified class from their implementation (say an com.a.internal.* class). I see no protection against the licensee using the TCK as a means to prevent competition instead of encouraging it in the proposed license.

The license should in my opinion require that the code covered by it is always completely runnable and buildable within the specified framework, or referenced frameworks within the specification, or with code provided alongside the TCK under a compatible license.

cheers,
dalibor topic






Reply via email to