pypi/legacy

Apache Software License version 2 not in classifiers list

ewdurbin opened this issue · 8 comments

Originally reported by: abec (Bitbucket: abec, GitHub: abec)


https://pypi.python.org/pypi?%3Aaction=list_classifiers

I only see "License :: OSI Approved :: Apache Software License" for apache. GPL has 5 listings for 3 versions:

  1. "License :: OSI Approved :: GNU General Public License (GPL)"
  2. "License :: OSI Approved :: GNU General Public License v2 (GPLv2)"
  3. "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)"
  4. "License :: OSI Approved :: GNU General Public License v3 (GPLv3)"
  5. "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)"

Original comment by Pekka Klärck (Bitbucket: pekkaklarck, GitHub: pekkaklarck):


I'm pretty certain that most, if not all, of the packages use Apache 2 license. Nevertheless, I agree that it would be a good idea to add

License :: OSI Approved :: Apache Software License v2.0
License :: OSI Approved :: Apache Software License v1.1
License :: OSI Approved :: Apache Software License v1.0

or perhaps

License :: OSI Approved :: Apache Software License :: 2.0
License :: OSI Approved :: Apache Software License :: 1.1
License :: OSI Approved :: Apache Software License :: 1.0

to clarify which license version is in use.

Note that version 2.0 is "Apache License", not "Apache Software License".

Anyway, is it possible to just add them? Is there any difficulty?

stain commented

Still waiting for this. https://pypi.python.org/pypi?%3Aaction=list_classifiers seems to have grown to include lots of licenses in different versions.

If I select https://pypi.python.org/pypi?:action=browse&c=56 I get 7512 packages, selecting many of those at random, all of them who declare license in addition to the classifier use Apache License 2.0, not "Apache Software License" which presumably refers to Apache Software License 1.1 or 1.0.

Hmmm, it seems this is a bit of a quagmire for a number of reasons.

  1. Indeed the existing classifier License :: OSI Approved :: Apache Software License is poorly specified.

  2. The Apache License indeed has 3 versions, 1.0, 1.1, and 2.0

  • Version 1.0 has no formal name within the license body
  • Version 1.1 has the formal name The Apache Software License within the license body
  • Version 2.0 has the formal name Apache License, Version 2.0
  1. ONLY Apache License 2.0 (Apache-2.0) is OSI approved.

So technically the classifier License :: OSI Approved :: Apache Software License implies 2.0 as it is the only OSI approved variant... or it implies 1.1 by the name, but I believe we should exclude this.

It seems if we want to correct this, we would create three new classifiers:

License :: OSI Approved :: Apache License, Version 2.0 (Apache-2.0)
License :: Apache License, Version 1.1 (Apache-1.1)
License :: Apache License, Version 1.0 (Apache-1.0)

And I suppose prohibit new packages being created with the old and incorrect classifier.

@di @dstufft thoughts?!

di commented

@ewdurbin Are you suggesting renaming the License :: OSI Approved :: Apache Software License classifier to License :: OSI Approved :: Apache License, Version 2.0 (Apache-2.0)?

Or are you suggesting we 'deprecate' the ambiguous classifier and add three new ones?

I think the latter makes the most sense here, although we don't currently have any mechanism to do so and it would need to be added in Warehouse as a new feature.

@stain Not sure if you're aware, but If there isn't a license classifier which suits your project, you can specify the License field instead. The downside to this is that users cannot filter on this license when searching, however it does allow you to correctly specify your project's license in cases like this.

no, certainly not renaming anything, the "path forward" I'm suggesting is captured in:

It seems if we want to correct this, we would create three new classifiers:

License :: OSI Approved :: Apache License, Version 2.0 (Apache-2.0)
License :: Apache License, Version 1.1 (Apache-1.1)
License :: Apache License, Version 1.0 (Apache-1.0)

And I suppose prohibit new packages being created with the old and incorrect classifier.

stain commented

+1 to @ewdurbin's proposal of three new classifiers, as v1.x are not OSI approved. We can't know which one people meant if they said "OSI Approved :: Apache Software License" so that can just be deprecated.