Permalink
Browse files

Merge pull request #1 from iustin/master

Add support for the Apache license
  • Loading branch information...
2 parents 85f959a + f06a8fa commit 39db02e0932604e1cf08dbd892c58ddb8e0d5e4a @kosmikus kosmikus committed May 7, 2012
@@ -89,6 +89,11 @@ data License =
-- | The MIT license, similar to the BSD3. Very free license.
| MIT
+ -- | The Apache License. Version 2.0 is the current version,
+ -- previous versions are considered historical.
+
+ | Apache (Maybe Version)
+
-- | Holder makes no claim to ownership, least restrictive license.
| PublicDomain
@@ -107,6 +112,7 @@ knownLicenses :: [License]
knownLicenses = [ GPL unversioned, GPL (version [2]), GPL (version [3])
, LGPL unversioned, LGPL (version [2,1]), LGPL (version [3])
, BSD3, MIT
+ , Apache unversioned, Apache (version [2, 0])
, PublicDomain, AllRightsReserved, OtherLicense]
where
unversioned = Nothing
@@ -115,6 +121,7 @@ knownLicenses = [ GPL unversioned, GPL (version [2]), GPL (version [3])
instance Text License where
disp (GPL version) = Disp.text "GPL" <> dispOptVersion version
disp (LGPL version) = Disp.text "LGPL" <> dispOptVersion version
+ disp (Apache version) = Disp.text "Apache" <> dispOptVersion version
disp (UnknownLicense other) = Disp.text other
disp other = Disp.text (show other)
@@ -127,6 +134,7 @@ instance Text License where
("BSD3", Nothing) -> BSD3
("BSD4", Nothing) -> BSD4
("MIT", Nothing) -> MIT
+ ("Apache", _ ) -> Apache version
("PublicDomain", Nothing) -> PublicDomain
("AllRightsReserved", Nothing) -> AllRightsReserved
("OtherLicense", Nothing) -> OtherLicense
@@ -516,6 +516,9 @@ checkLicense pkg =
unknownLicenseVersion (LGPL (Just v))
| v `notElem` knownVersions = Just knownVersions
where knownVersions = [ v' | LGPL (Just v') <- knownLicenses ]
+ unknownLicenseVersion (Apache (Just v))
+ | v `notElem` knownVersions = Just knownVersions
+ where knownVersions = [ v' | Apache (Just v') <- knownLicenses ]
unknownLicenseVersion _ = Nothing
checkSourceRepos :: PackageDescription -> [PackageCheck]
@@ -199,7 +199,7 @@ hunitTests =
[ TestLabel "license parsers" $ TestCase $
sequence_ [ assertParseOk ("license " ++ show lVal) lVal
(runP 1 "license" parseLicenseQ (show lVal))
- | lVal <- [GPL,LGPL,BSD3,BSD4] ]
+ | lVal <- [GPL,LGPL,BSD3,BSD4,Apache] ]
, TestLabel "Required fields" $ TestCase $
do assertParseOk "some fields"
@@ -67,7 +67,7 @@ import qualified Distribution.Package as P
import Distribution.Client.Init.Types
( InitFlags(..), PackageType(..), Category(..) )
import Distribution.Client.Init.Licenses
- ( bsd3, gplv2, gplv3, lgpl2, lgpl3 )
+ ( bsd3, gplv2, gplv3, lgpl2, lgpl3, apache20 )
import Distribution.Client.Init.Heuristics
( guessPackageName, guessAuthorNameMail, SourceFileEntry(..), scanForModules, neededBuildPrograms )
@@ -178,7 +178,7 @@ getLicense flags = do
return $ flags { license = maybeToFlag lic }
where
listedLicenses =
- knownLicenses \\ [GPL Nothing, LGPL Nothing, OtherLicense]
+ knownLicenses \\ [GPL Nothing, LGPL Nothing, Apache Nothing, OtherLicense]
-- | The author's name and email. Prompt, or try to guess from an existing
-- darcs repo.
@@ -495,6 +495,9 @@ writeLicense flags = do
Flag (LGPL (Just (Version {versionBranch = [3]})))
-> Just lgpl3
+ Flag (Apache (Just (Version {versionBranch = [2, 0]})))
+ -> Just apache20
+
_ -> Nothing
case licenseFile of
@@ -5,6 +5,7 @@ module Distribution.Client.Init.Licenses
, gplv3
, lgpl2
, lgpl3
+ , apache20
) where
@@ -1720,3 +1721,208 @@ lgpl3 = unlines
, "Library."
]
+apache20 :: License
+apache20 = unlines
+ [ ""
+ , " Apache License"
+ , " Version 2.0, January 2004"
+ , " http://www.apache.org/licenses/"
+ , ""
+ , " TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION"
+ , ""
+ , " 1. Definitions."
+ , ""
+ , " \"License\" shall mean the terms and conditions for use, reproduction,"
+ , " and distribution as defined by Sections 1 through 9 of this document."
+ , ""
+ , " \"Licensor\" shall mean the copyright owner or entity authorized by"
+ , " the copyright owner that is granting the License."
+ , ""
+ , " \"Legal Entity\" shall mean the union of the acting entity and all"
+ , " other entities that control, are controlled by, or are under common"
+ , " control with that entity. 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."
+ , ""
+ , " \"You\" (or \"Your\") shall mean an individual or Legal Entity"
+ , " exercising permissions granted by this License."
+ , ""
+ , " \"Source\" form shall mean the preferred form for making modifications,"
+ , " including but not limited to software source code, documentation"
+ , " source, and configuration files."
+ , ""
+ , " \"Object\" form shall mean any form resulting from mechanical"
+ , " transformation or translation of a Source form, including but"
+ , " not limited to compiled object code, generated documentation,"
+ , " and conversions to other media types."
+ , ""
+ , " \"Work\" shall mean the work of authorship, whether in Source or"
+ , " Object form, made available under the License, as indicated by a"
+ , " copyright notice that is included in or attached to the work"
+ , " (an example is provided in the Appendix below)."
+ , ""
+ , " \"Derivative Works\" shall mean any work, whether in Source or Object"
+ , " form, that is based on (or derived from) the Work and for which the"
+ , " editorial revisions, annotations, elaborations, or other modifications"
+ , " represent, as a whole, an original work of authorship. For the purposes"
+ , " of this License, Derivative Works shall not include works that remain"
+ , " separable from, or merely link (or bind by name) to the interfaces of,"
+ , " the Work and Derivative Works thereof."
+ , ""
+ , " \"Contribution\" shall mean any work of authorship, including"
+ , " the original version of the Work and any modifications or additions"
+ , " to that Work or Derivative Works thereof, that is intentionally"
+ , " submitted to Licensor for inclusion in the Work by the copyright owner"
+ , " or by an individual or Legal Entity authorized to submit on behalf of"
+ , " the copyright owner. For the purposes of this definition, \"submitted\""
+ , " means any form of electronic, verbal, or written communication sent"
+ , " to the Licensor or its representatives, 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 copyright owner as \"Not a Contribution.\""
+ , ""
+ , " \"Contributor\" shall mean Licensor and any individual or Legal Entity"
+ , " on behalf of whom a Contribution has been received by Licensor and"
+ , " subsequently incorporated within the Work."
+ , ""
+ , " 2. Grant of Copyright License. Subject to the terms and conditions of"
+ , " this License, each Contributor hereby grants to You a perpetual,"
+ , " worldwide, non-exclusive, no-charge, royalty-free, irrevocable"
+ , " copyright license to reproduce, prepare Derivative Works of,"
+ , " publicly display, publicly perform, sublicense, and distribute the"
+ , " Work and such Derivative Works in Source or Object form."
+ , ""
+ , " 3. Grant of Patent License. Subject to the terms and conditions of"
+ , " this License, each Contributor hereby grants to You a perpetual,"
+ , " worldwide, non-exclusive, no-charge, royalty-free, irrevocable"
+ , " (except as stated in this section) patent license to make, have made,"
+ , " use, offer to sell, sell, import, and otherwise transfer the Work,"
+ , " where such license applies only to those patent claims licensable"
+ , " by such Contributor that are necessarily infringed by their"
+ , " Contribution(s) alone or by combination of their Contribution(s)"
+ , " with the Work to which such Contribution(s) was submitted. If You"
+ , " institute patent litigation against any entity (including a"
+ , " cross-claim or counterclaim in a lawsuit) alleging that the Work"
+ , " or a Contribution incorporated within the Work constitutes direct"
+ , " or contributory patent infringement, then any patent licenses"
+ , " granted to You under this License for that Work shall terminate"
+ , " as of the date such litigation is filed."
+ , ""
+ , " 4. Redistribution. You may reproduce and distribute copies of the"
+ , " Work or Derivative Works thereof in any medium, with or without"
+ , " modifications, and in Source or Object form, provided that You"
+ , " meet the following conditions:"
+ , ""
+ , " (a) You must give any other recipients of the Work or"
+ , " Derivative Works a copy of this License; and"
+ , ""
+ , " (b) You must cause any modified files to carry prominent notices"
+ , " stating that You changed the files; and"
+ , ""
+ , " (c) You must retain, in the Source form of any Derivative Works"
+ , " that You distribute, all copyright, patent, trademark, and"
+ , " attribution notices from the Source form of the Work,"
+ , " excluding those notices that do not pertain to any part of"
+ , " the Derivative Works; and"
+ , ""
+ , " (d) If the Work includes a \"NOTICE\" text file as part of its"
+ , " distribution, then any Derivative Works that You distribute must"
+ , " include a readable copy of the attribution notices contained"
+ , " within such NOTICE file, excluding those notices that do not"
+ , " pertain to any part of the Derivative Works, in at least one"
+ , " of the following places: within a NOTICE text file distributed"
+ , " as part of the Derivative Works; within the Source form or"
+ , " documentation, if provided along with the Derivative Works; or,"
+ , " within a display generated by the Derivative Works, if and"
+ , " wherever such third-party notices normally appear. The contents"
+ , " of the NOTICE file are for informational purposes only and"
+ , " do not modify the License. You may add Your own attribution"
+ , " notices within Derivative Works that You distribute, alongside"
+ , " or as an addendum to the NOTICE text from the Work, provided"
+ , " that such additional attribution notices cannot be construed"
+ , " as modifying the License."
+ , ""
+ , " You may add Your own copyright statement to Your modifications and"
+ , " may provide additional or different license terms and conditions"
+ , " for use, reproduction, or distribution of Your modifications, or"
+ , " for any such Derivative Works as a whole, provided Your use,"
+ , " reproduction, and distribution of the Work otherwise complies with"
+ , " the conditions stated in this License."
+ , ""
+ , " 5. Submission of Contributions. Unless You explicitly state otherwise,"
+ , " any Contribution intentionally submitted for inclusion in the Work"
+ , " by You to the Licensor shall be under the terms and conditions of"
+ , " this License, without any additional terms or conditions."
+ , " Notwithstanding the above, nothing herein shall supersede or modify"
+ , " the terms of any separate license agreement you may have executed"
+ , " with Licensor regarding such Contributions."
+ , ""
+ , " 6. Trademarks. This License does not grant permission to use the trade"
+ , " names, trademarks, service marks, or product names of the Licensor,"
+ , " except as required for reasonable and customary use in describing the"
+ , " origin of the Work and reproducing the content of the NOTICE file."
+ , ""
+ , " 7. Disclaimer of Warranty. Unless required by applicable law or"
+ , " agreed to in writing, Licensor provides the Work (and each"
+ , " Contributor provides its Contributions) on an \"AS IS\" BASIS,"
+ , " WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or"
+ , " implied, including, without limitation, any warranties or conditions"
+ , " of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A"
+ , " PARTICULAR PURPOSE. You are solely responsible for determining the"
+ , " appropriateness of using or redistributing the Work and assume any"
+ , " risks associated with Your exercise of permissions under this License."
+ , ""
+ , " 8. Limitation of Liability. In no event and under no legal theory,"
+ , " whether in tort (including negligence), contract, or otherwise,"
+ , " unless required by applicable law (such as deliberate and grossly"
+ , " negligent acts) or agreed to in writing, shall any Contributor be"
+ , " liable to You for damages, including any direct, indirect, special,"
+ , " incidental, or consequential damages of any character arising as a"
+ , " result of this License or out of the use or inability to use the"
+ , " Work (including but not limited to damages for loss of goodwill,"
+ , " work stoppage, computer failure or malfunction, or any and all"
+ , " other commercial damages or losses), even if such Contributor"
+ , " has been advised of the possibility of such damages."
+ , ""
+ , " 9. Accepting Warranty or Additional Liability. While redistributing"
+ , " the Work or Derivative Works thereof, You may choose to offer,"
+ , " and charge a fee for, acceptance of support, warranty, indemnity,"
+ , " or other liability obligations and/or rights consistent with this"
+ , " License. However, in accepting such obligations, You may act only"
+ , " on Your own behalf and on Your sole responsibility, not on behalf"
+ , " of any other Contributor, and only if You agree to indemnify,"
+ , " defend, and hold each Contributor harmless for any liability"
+ , " incurred by, or claims asserted against, such Contributor by reason"
+ , " of your accepting any such warranty or additional liability."
+ , ""
+ , " END OF TERMS AND CONDITIONS"
+ , ""
+ , " APPENDIX: How to apply the Apache License to your work."
+ , ""
+ , " To apply the Apache License to your work, attach the following"
+ , " boilerplate notice, with the fields enclosed by brackets \"[]\""
+ , " replaced with your own identifying information. (Don't include"
+ , " the brackets!) The text should be enclosed in the appropriate"
+ , " comment syntax for the file format. We also recommend that a"
+ , " file or class name and description of purpose be included on the"
+ , " same \"printed page\" as the copyright notice for easier"
+ , " identification within third-party archives."
+ , ""
+ , " Copyright [yyyy] [name of copyright owner]"
+ , ""
+ , " Licensed under the Apache License, Version 2.0 (the \"License\");"
+ , " you may not use this file except in compliance with the License."
+ , " You may obtain a copy of the License at"
+ , ""
+ , " http://www.apache.org/licenses/LICENSE-2.0"
+ , ""
+ , " Unless required by applicable law or agreed to in writing, software"
+ , " distributed under the License is distributed on an \"AS IS\" BASIS,"
+ , " WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied."
+ , " See the License for the specific language governing permissions and"
+ , " limitations under the License."
+ ]

0 comments on commit 39db02e

Please sign in to comment.