Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

text-unidecode is released under the Artistic license #727

Closed
moggers87 opened this issue Mar 14, 2018 · 15 comments · Fixed by #993 or #1601
Closed

text-unidecode is released under the Artistic license #727

moggers87 opened this issue Mar 14, 2018 · 15 comments · Fixed by #993 or #1601

Comments

@moggers87
Copy link
Contributor

text-unidecode is released under the Artistic license v1.0, which is considered non-free by the FSF (and therefore not compatible with the GPL). I believe this clause is also of concern to commercial users of faker too:

  1. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own.

Not being able to charge a fee for the software is problematic for those of us who are contractors, for example.

I realise there aren't really any good alternatives (unidecode is GPL licensed as pointed out in #628 , isounidecode doesn't support Python 3), so would a patch making text-unidecode an optional dependency be acceptable?

@fcurella
Copy link
Collaborator

According to https://en.wikipedia.org/wiki/Artistic_License, the Artistic license allows linking from code with a different license.

I think 'this Package' in 'You may not charge a fee for this Package' refers to text-unidecode, not to Faker.

@moggers87
Copy link
Contributor Author

According to https://en.wikipedia.org/wiki/Artistic_License, the Artistic license allows linking from code with a different license.

That's true of the any FOSS license, surely? The problem of license compatibility comes from two licenses having conflicting terms. E.g. you can't use Apache licensed code with a GPLv2 project due to Apache's patent clause conflicting with the GPLv2's "no additional restrictions" clause.

With regard to the Artistic license v1.0, I think it's clause 5 (the restrictions on commercial use) that make it non-free in the eyes of the FSF.

I think 'this Package' in 'You may not charge a fee for this Package' refers to text-unidecode, not to Faker.

Yes, that's how I understood it too. But I can't distribute Faker without text-unidecode.

@moggers87
Copy link
Contributor Author

Also, it appears I was wrong about isounidecode - it does support Python 3, it just doesn't advertise it.

@fcurella
Copy link
Collaborator

fcurella commented Mar 14, 2018

@moggers87 Can you send a PR that replaces text-unidecode with isounidecode? I'm ok with replacing it if the build passes on all configurations

@moggers87
Copy link
Contributor Author

Did something change with the license of text-unidecode?

@fcurella fcurella reopened this Mar 5, 2019
@fcurella
Copy link
Collaborator

fcurella commented Mar 5, 2019

Sorry, I closed it by accident

@dmsimard
Copy link

@fcurella I came across this issue when packaging dependencies for inclusion in the Fedora distribution and wanted to mention that it is still problematic.

The "Artistic 1.0" license is explicitely listed in incompatible licenses here: https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Bad_Licenses

These are software licenses which are NOT OKAY for Fedora. Nothing in Fedora is permitted to use these licenses. They're either non-free or deprecated.

It is documented on gnu.org as:

Artistic License 1.0 (#ArtisticLicense)
We cannot say that this is a free software license because it is too vague; some passages are too clever for their own good, and their meaning is not clear. We urge you to avoid using it, except as part of the disjunctive license of Perl.

@fcurella
Copy link
Collaborator

@dmsimard I 100% agree with you.

The problem is that we don't have any decent alternative. If you can think of any solution, please let us know (and possibly send a PR ;)

@dmsimard
Copy link

@fcurella I am actually not familiar with faker but it looks like the only place where text-unidecode is used is here:

string = unidecode(string)

Surely there could be an alternative implementation ?
Unicode became standard in python3 and python2 is end-of-life in 5 months.

@fcurella
Copy link
Collaborator

fcurella commented Jul 10, 2019

@dmsimard

We use text-unidecode for transliteration, ie: taking Unicode data and trying to represent it in US-ASCII characters. For example u'какой -> u'kakoi'

Surely there could be an alternative implementation ?

There is one, but it's not actively maintained. See #728

Unicode became standard in python3 and python2 is end-of-life in 5 months.

In 5 months, we can finally drop Python2. But we'll still need a library for transliteration.

@jorti
Copy link

jorti commented Sep 5, 2019

text-unidecode has switched its license in version 1.3 to GPL+ or Artistic.

@moggers87
Copy link
Contributor Author

Good to know, running tests against 1.3 and will submit a PR shortly

@jimleroyer
Copy link

It does not seem that text-unidecode is using the version 2 of the artistic license which makes it compatible with other licenses such as MIT, but rather switched to the initial non-compat version 1. I wanted for the open source GCNotify project to use faker but from what I learned, artistic v1 will not suit MIT, which faker also depend upon.

I am not well versed with the subtleties of licensing so feel free to enlighten me, but I wonder how can faker even be able to depend on text-unidecode if the latter does not use artistic v2?

Thanks for your awesome library btw, I just wish I could use it.

@fcurella
Copy link
Collaborator

@jimleroyer I've replaced text-unidecode with my own implementation and removed the dependency.

@jimleroyer
Copy link

Honestly impressed, what an amazing support. If I can help in the future with an issue, I will take a deeper look.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants