Re: [Haskell-cafe] Hackage and Free Software

On Sat, Feb 28, 2015 at 11:27 AM, fr33domlover
Hello haskellers! I'd like to make a suggestion: have Hackage accept only packages released under free software licenses.
Anything that excludes software that we could use, or otherwise discourages people from making software available to the community, is a bad idea. A restriction to OSF-approved licenses would exclude anything released under a Creative Commons license, since the OSF doesn't list those, which makes sense as they aren't "software licences" per se. And your restriction of "released under a license" would exclude public domain software - at least in countries that recognize such a thing. Yes, these are nits, but these are nits that could cause someone to decide not to put software that is otherwise perfectly acceptable on Hackage.
Actually the all-rights-reserved tag in Hackage [1] has only two packages tagged by it - the dummy no-op project HNop, and another package whose COPYING file contains a broken link and whose README says "BSD style license".
This is a general problem on any site that offers downloads with a
license type tag. What happens if the selected license tag and the
included license have different rights? My suspicion is that if it
went to court, you could justify using it under either license,
meaning that such things are effectively dual licensed. We might make
add a statement making that explicit.
In particular, an "all-rights-reserved" tag implies that you may have
to ask someone's permission to even download the package from Hackage,
so it doesn't make a lot of sense. Given that - with the dual license
interpretation - it effectively isn't used, removing it might make
sense. Or renaming it to "other not listed" may be more appropriate.

Hello Mike,
First of all, thanks for the feedback.
On 2015-02-28
Mike Meyer
On Sat, Feb 28, 2015 at 11:27 AM, fr33domlover
wrote: Hello haskellers! I'd like to make a suggestion: have Hackage accept only packages released under free software licenses.
Anything that excludes software that we could use, or otherwise discourages people from making software available to the community, is a bad idea. A restriction to OSF-approved licenses would exclude anything released under a Creative Commons license, since the OSF doesn't list those, which makes sense as they aren't "software licences" per se. And your restriction of "released under a license" would exclude public domain software - at least in countries that recognize such a thing.
As to creative commons - indeed they aren't meant for software (maybe except for CC0, which is basically like public domain). But I also don't think people want to use them once they see the problem: If you want it permissive, you have Apache for example (also BSD/MIT), and if you want copyleft you have GPL (also AGPL, etc.). As to public domain: It's actually just fine! It's true than most countries recognize lack of license as "all rights reserved", but I also think it's a very small and trivial task for a maintainer to add a few license lines to state that the software should be globally treated as public domain. So public domain software is just fine, free software. In some websites it's common to publish code snippets under Creative Commons - if I'm not mistaken StackOverflow is like this - but Hackage is a package database and not a snippet manager, so the snippet situation is probably irrelevant, I hope.
Yes, these are nits, but these are nits that could cause someone to decide not to put software that is otherwise perfectly acceptable on Hackage.
That depends on what "acceptable" means. In the worst case you can have separation between free and nonfree software by tag, and make it possible to turn nonfree software on/off using a cabal-install commandline option. This will allow people to upload first, and then think and understand the licensing situation. Once they do, they can properly tag their project. Could that work?
Actually the all-rights-reserved tag in Hackage [1] has only two packages tagged by it - the dummy no-op project HNop, and another package whose COPYING file contains a broken link and whose README says "BSD style license".
This is a general problem on any site that offers downloads with a license type tag. What happens if the selected license tag and the included license have different rights? My suspicion is that if it went to court, you could justify using it under either license, meaning that such things are effectively dual licensed. We might make add a statement making that explicit.
In particular, an "all-rights-reserved" tag implies that you may have to ask someone's permission to even download the package from Hackage, so it doesn't make a lot of sense. Given that - with the dual license interpretation - it effectively isn't used, removing it might make sense. Or renaming it to "other not listed" may be more appropriate.
That's what I thought too when I saw all-rights-reserved.
--- fr33domlover http://www.rel4tion.org/people/fr33domlover GPG key ID: 63E5E57D (size: 4096) GPG key fingerprint: 6FEE C222 7323 EF85 A49D 5487 5252 C5C8 63E5 E57D

On Sat, Feb 28, 2015 at 01:15:28PM -0600, Mike Meyer wrote:
Anything that excludes software that we could use, or otherwise discourages people from making software available to the community, is a bad idea. A restriction to OSF-approved licenses would exclude anything released under a Creative Commons license, since the OSF doesn't list those, which makes sense as they aren't "software licences" per se. And your restriction of "released under a license" would exclude public domain software - at least in countries that recognize such a thing.
Yes, these are nits, but these are nits that could cause someone to decide not to put software that is otherwise perfectly acceptable on Hackage.
Those restrictions would be, in my opinion, a good idea. Rejecting say CC-SA (CC0 is FSF approved), etc. code means rejecting licences with clear and documented problems in them, problems which would cause quite a lot of headaches down the road. Having to pick a licence from the bazillion ones [1] approved by the FSF or the OSI streamlines the choice and avoids licence creep with a minimal risk of scaring the uploader away. I must admit, as fr33domlover notes, that this problem isn't present in hackage as now (I yet have to meet a library not licenced as GPL/ MIT/BSD3), but after finding this gem on github <Software> may be used in commercial projects and applications with the one-time purchase of a commercial license. For non-commercial, personal, or open source projects and applications, you may use <Software> under the terms of the GPL v3 License. You may use <Software> for free. I say: "Better safe than sorry" ;) [1] http://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_lic...

On Sat, Feb 28, 2015 at 2:59 PM, Francesco Ariis
Those restrictions would be, in my opinion, a good idea. Rejecting say CC-SA (CC0 is FSF approved), etc. code means rejecting licences with clear and documented problems in them, problems which would cause quite a lot of headaches down the road.
I don't have a problem if you want to do that. But by disallowing those licenses on Hackage, you've taken away *MY* ability to decide if those problems are problems for my use case. There are open source projects that are systematically excising GPL'ed software because of the problems it shares with ShareAlike licenses. Should we disallow the GPL because some people have problems with it? Making Hackage better to help users sort out which licenses they are willing to accept in their project - which I personally would like to do on a project-by-project basis! - is a solution to these problems. Restricting the licenses that are acceptable on Hackage to meet some arbitrary set of criteria is a knee-jerk.

For the record, the current behaviour is as follows. A package with AllRightsReserved as a license or a missing license is now rejected by “cabal check” with the following: == * The 'license' field is missing or specified as AllRightsReserved. Hackage would reject this package. == A package with an unknown license such as “Foo” is rejected with the following: == * 'license: Foo' is not a recognised license. The known licenses are: GPL, GPL-2, GPL-3, LGPL, LGPL-2.1, LGPL-3, AGPL, AGPL-3, BSD2, BSD3, MIT, MPL-2.0, Apache, Apache-2.0, PublicDomain, AllRightsReserved, OtherLicense Hackage would reject this package. == However, a package with OtherLicense is indeed accepted. It would be good to specify that we ask that OtherLicense indeed be another recognized open-source license. That said, I do not feel strongly about how much care we take to enforce this. We should definitely better document this and other elements of hackage policy, and I know discussions about that have in fact been underway. I agree that being able to filter Hackage packages on license and other considerations (say, build reports on various systems) would be a great feature. Some such improvements have been floated as GSoC projects. I would encourage those that feel strongly about such features to consider getting involved with development of the hackage server. Cheers, Gershom On February 28, 2015 at 4:29:39 PM, Mike Meyer (mwm@mired.org) wrote:
On Sat, Feb 28, 2015 at 2:59 PM, Francesco Ariis wrote:
Those restrictions would be, in my opinion, a good idea. Rejecting say CC-SA (CC0 is FSF approved), etc. code means rejecting licences with clear and documented problems in them, problems which would cause quite a lot of headaches down the road.
I don't have a problem if you want to do that. But by disallowing those licenses on Hackage, you've taken away *MY* ability to decide if those problems are problems for my use case.
There are open source projects that are systematically excising GPL'ed software because of the problems it shares with ShareAlike licenses. Should we disallow the GPL because some people have problems with it?
Making Hackage better to help users sort out which licenses they are willing to accept in their project - which I personally would like to do on a project-by-project basis! - is a solution to these problems. Restricting the licenses that are acceptable on Hackage to meet some arbitrary set of criteria is a knee-jerk. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

On Sun, Mar 01, 2015 at 12:17:17AM -0500, Gershom B wrote:
For the record, the current behaviour is as follows.
[..]
It would be good to specify that we ask that OtherLicense indeed be another recognized open-source license. That said, I do not feel strongly about how much care we take to enforce this. We should definitely better document this and other elements of hackage policy, and I know discussions about that have in fact been underway.
I agree that being able to filter Hackage packages on license and other considerations (say, build reports on various systems) would be a great feature. Some such improvements have been floated as GSoC projects. I would encourage those that feel strongly about such features to consider getting involved with development of the hackage server.
Thanks for the explanation Gershom. Hackage hacking is quite a mysterious topic for me now, but I wrote a small cabal patch to encourage devs to pick recognized free/open-source licenses. [1] https://mail.haskell.org/pipermail/cabal-devel/2015-March/010019.html

Hello, Hackage accepts source packages only anyway. Why would anyone upload propertiary code and risk it being stolen? Noone uploads non-free software to Hackage, it's safe to assume noone will ever do (except perhaps as an act of trolling, and such packages could be just flat out removed), so why fix it when it isn't broken? Also, as it was already pointed out by Mike Meyer, a list of pre-approved licenses doesn't solve the problem of compatibility and permission to actually build and distribute binaries at all, and it would be better solved by providing some tools to view and check licenses of the transitive closure of dependencies of a package (which would, incidentally, make it easy to weed out non-free packages too, for anyone who desires so) Best regards, Marcin Mrotek

On Tue, Mar 3, 2015 at 9:58 AM, Marcin Mrotek
Also, as it was already pointed out by Mike Meyer, a list of pre-approved licenses doesn't solve the problem of compatibility and permission to actually build and distribute binaries at all, and it would be better solved by providing some tools to view and check licenses of the transitive closure of dependencies of a package (which would, incidentally, make it easy to weed out non-free packages too, for anyone who desires so)
BTW, part of the tools are already available: the cabal-dependency-licenses package claims to report all your dependencies sorted by license type.

On Tue, Mar 03, 2015 at 04:58:10PM +0100, Marcin Mrotek wrote:
Hackage accepts source packages only anyway. Why would anyone upload propertiary code and risk it being stolen? Noone uploads non-free software to Hackage, it's safe to assume noone will ever do (except perhaps as an act of trolling, and such packages could be just flat out removed), so why fix it when it isn't broken?
As Gershom B's messages states, as now AllRightsReserved would be rejected on hackage. I agree with you nothing is broken with this behaviour and I am not trying to 'fix' it in any way!
Also, as it was already pointed out by Mike Meyer, a list of pre-approved licenses doesn't solve the problem of compatibility and permission to actually build and distribute binaries at all, and it would be better solved by providing some tools to view and check licenses of the transitive closure of dependencies of a package (which would, incidentally, make it easy to weed out non-free packages too, for anyone who desires so)
This is not about solving the dependencies problem (kudos to the person coming up with such a package), it's about asking the developer, if s/he doesn't pick a licence known by cabal, to please choose some recognised open-source licence. It seems to me a sensible and straightforward documentation of what is already happening on hackage and I fail to see how this can look controversial.

On 2015-02-28
Mike Meyer
There are open source projects that are systematically excising GPL'ed software because of the problems it shares with ShareAlike licenses. Should we disallow the GPL because some people have problems with it?
Making Hackage better to help users sort out which licenses they are willing to accept in their project - which I personally would like to do on a project-by-project basis! - is a solution to these problems. Restricting the licenses that are acceptable on Hackage to meet some arbitrary set of criteria is a knee-jerk.
The restrictions aren't arbitrary at all. They're based on ethics. On Software freedom. But sure, a package with invalid license tagging should instantly become unavailable. Here's a suggestion: We can talk about this forever, because there seem to be no official guidelines to really discuss. Why don't we put clear guidelines at hackage.haskell.org ? If these guidelines would be "proprietary software allowed", then there's a point to discuss. But if the guideline requires certain tagging - currently all the license tags except all-rights-reserved are free software licenses - maybe the problem is already solved. Who maintains the community hackage instance and the guidelines? Just to make sure these people are aware of this discussion. --- fr33domlover http://www.rel4tion.org/people/fr33domlover GPG key ID: 63E5E57D (size: 4096) GPG key fingerprint: 6FEE C222 7323 EF85 A49D 5487 5252 C5C8 63E5 E57D
participants (5)
-
fr33domlover
-
Francesco Ariis
-
Gershom B
-
Marcin Mrotek
-
Mike Meyer