HomePhabricator

Add Glyphicons Halflings Font and Examples

Description

Add Glyphicons Halflings Font and Examples

Summary: This adds in the Glyphicons Halflings Font/Iconset as an option for PHUIIconView along with a standard set of 10 colors. This will be a replacement for the standard action icon set in upcoming diffs, as well as obviously give us more flexibility, less KB, and less design resource time managing images.

Test Plan: UIExamples, Diviner

Reviewers: btrahan, epriestley

Reviewed By: epriestley

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D8798

Details

Auditors
hach-que
Provenance
chadAuthored on
chadPushed on Apr 18 2014, 12:31 AM
Reviewer
epriestley
Differential Revision
D8798: Add Glyphicons Halflings Font and Examples
Parents
rP95a405da1090: Record build success or failure on buildable objects
Branches
Unknown
Tags
Unknown

Event Timeline

The license that is attached to this commit concerns me (I know that @epriestley and @chad have been discussing in IRC, but I want to raise my concern explicitly).

Right now I have a fork sitting on GitHub with custom patches applied. It is rebased on the latest version of Phabricator and thus includes this commit. Does this mean that I'm falling afoul of the licensing right now, given that I don't have a Glyphicons license?

Specifically the license states:

non-sublicensable

and

The license is non transferable and it is tied always only with one buyer (his email address). Please, be aware that in case you would like to use a font or all icons in vector format in your html theme / application, you have to include this license as a part of your product. If your customers would like to use GLYPHICONS as a part of their own (another) product, they have to buy their own license.

(emphasis mine)

I am not a lawyer, but even my rudimentary analysis of copyright law means that right now, anyone that has a fork of the HEAD of Phabricator is probably running afoul of this licensing restriction.

In particular, I'm not even sure this license extends to people running Phabricator on their own servers. Since the license explicitly states that it is "non-sublicensable", you can't give me a license to distribute Glyphicons (which is what I am doing by serving the images to people viewing my Phabricator server).

To add onto this:

You must not: ... use icons as a part of any application where your customers are not a final customer

In the Phabricator-on-my-own-server scenario, I'd argue that I'm not the final customer. The people browsing my Phabricator installation are the final customer, since they are the ones whose browser downloads the images.

In addition, this is particularly concerning for anyone running Phabricator in a commercial or business environment, since they're likely to have a much higher limit of liability (both in terms of the penalties for copyright infringement and in terms of the feasibility to sue).


I did notice that in IRC it was stated:

Yeah. I would guess that he'll probably get back to you and be like "yeah that's fine" and we'll be all set.

It is important to be explicitly clear on exactly what the author would be granting in this scenario. For it to be permissible under a compatible open source license, the author would pretty much have to be granting anyone the ability to take the icons from the Phabricator source code and reuse them in any other scenario. The reason for this is that it's reasonably impossible to distinguish when something stops being "Phabricator" and when it starts being another product.

Consider the following examples:

  • Would http://discoverunearth.com/ be covered under that license? It's literally built on the Phabricator source code (and is really just a fancy Nginx rewrite to my actual install), but it doesn't look like Phabricator and it doesn't appear like Phabricator.
  • Would custom applications written on top of Phabricator be covered under that license? It's pretty reasonable to assume that custom applications would make use of the icon sets available in Phabricator, but it's not clear whether or not that counts as a derived product of Phabricator or not. What happens when those applications are distributed on their own as a plugin for Phabricator? Do they count as a separate product? And what happens if those products are sold as a commercial offering?

Those are just some of the examples and licensing questions one has to ask for anything that isn't residing under a proper open source or creative commons license.

In short, I don't think even getting email permission is suitable, unless it's very clear to the Glyphicons author that they'd effectively be granting a license for anyone to redistribute their icons (under Apache 2.0 or Creative Commons).

Anything less is a legal minefield waiting to explode.

Either we can, or we can’t. He is the owner of the copyright and can decide if and how we can comply. Everything has a price, and I offered to pay for that license.

Anything else falls into “IANAL”.

In the end, we just want to be good open source citizens, so it may mean FontAwesome or paying through the nose for a custom fontset.

Part of the issue here is that this license is not written very precisely, but I don't think anything but redistribution creates license issues. If we'd given you an HTML theme using the icons instead of a web application, you would obviously be in compliance with the license to use that theme to present whatever content you wanted (including serving the icons from your own servers, having users download the icons from your servers, etc). The strict interpretation (roughly, "you must have a license to look at the icons") doesn't make much sense or seem well-supported by the rest of the text, and phrases like "offer them for download anywhere" necessarily contemplate distribution rather than use, as offering WOFF files wouldn't make any sense if users were not permitted to download them without a license (they would necessarily be wholly useless).

But yes, we basically need an Apache/MIT/OFL/etc license for the font files to keep them. Technically, the files we need look like they're available from Bootstrap with an MIT license, so we could technically do that instead. This feels sort of sketchy and in-questionable-faith, though.

I don't think having this stuff in the project creates a hazard such that we need to back this out immediately or burn the whole project to the ground or anything, but we do need to clarify the licensing situation before moving forward. By "yeah that's fine", I mean "Yes, you can use the MIT license that Boostrap uses" or similar, not "we'll just copy a 'yeah' from personal correspondence into the bottom of the LICENSE and call it a day".

or we could just hire a proper designer. o.O

That is, I think the ideal outcome for everyone here is:

  • we use the MIT license instead, which we already legally and technically are able to do, as these assets are available under that license via Bootstrap;
  • Jan Kovařík approves of us doing this on a personal level so we aren't being jerks about it even if it's technically permissible; and
  • we pay him some money to support Glyphicons, since they're great and it would cost us way more to develop them on our own.

yeah his or her entire job can be drawing icons

The strict interpretation (roughly, "you must have a license to look at the icons") doesn't make much sense or seem well-supported by the rest of the text

This isn't my interpretation, rather I'm looking at it from the perspective of "who is serving the files up".

If your customers would like to use GLYPHICONS as a part of their own (another) product, they have to buy their own license.

This is really indeterminate about what constitutes another product. Since it's not clear what this actually encompasses, it's best to assume that the author can assert the largest scope (even if this is not the intention).

Technically, the files we need look like they're available from Bootstrap with an MIT license, so we could technically do that instead.

This is one of the strange things about the license. It's not clear, but I'm fairly sure the LICENSE block must only apply to non-halflings. The LICENSE block and an MIT license are inherently incompatible with each other (in the sense they can't both be right, but LICENSE can combine with MIT to produce LICENSE).

It does explicitly state:

GLYPHICONS Halflings [are also a part of Bootstrap from Twitter, and they] are released under the same license as Bootstrap.

That implies that they are licensed under MIT, but then at the bottom of the Bootstrap website it says (emphasis mine):

Code licensed under MIT, documentation under CC BY 3.0.

The MIT license is in the root of the Bootstrap repository though, so it might be okay, it might not be.

Either way it's still quite ambiguous as to the exact licensing of these icons. Personally if they can't be made available under an OSI approved license, I think Phabricator is better to try and avoid usage at all, rather than pair up a semi-sort-of-open-source license that allows redistribution but with restrictions.

My read is that the halflings are dual-licensed under this incompatible license and MIT (via Bootstrap), and this isn't a bookkeeping mistake where someone just forgot to annotate some licensing subtlety; here's the author being explicit about the MIT license:

https://github.com/twbs/bootstrap/issues/2054#issuecomment-15511775

This commit in Phabricator uses the wrong license, but replacing this license with MIT and "including" Bootstrap in the project would resolve that. But I don't want to do that without approval, since it may not be in the spirit of the license even if it's within the letter of it.

So my rough plan is:

  • Wait for direct communication with Glyphicons author to get proper license for Phabricator and it's open-source, forkable nature, paid or otherwise. Prefer this option as it would allow us to replace halflings and regular (app) icons for big KB savings.
  • If no communication or unfavorable communication, remove Halflings from Phabricator and switch to custom font-kit from Fontello with Open Source based icons. We'd likely still use regular Glyphicon images for apps.

I will likely give this a week or so, but Fontello is pretty compelling.

D8835 resolves the concern for me while waiting for confirmation from Glyphicons.