Skip to content

Commit

Permalink
Update SPDX license list to version 3.25
Browse files Browse the repository at this point in the history
  • Loading branch information
ffaf1 committed Sep 12, 2024
1 parent 1077091 commit 0874a09
Show file tree
Hide file tree
Showing 10 changed files with 817 additions and 324 deletions.
150 changes: 109 additions & 41 deletions Cabal-syntax/src/Distribution/SPDX/LicenseExceptionId.hs

Large diffs are not rendered by default.

941 changes: 670 additions & 271 deletions Cabal-syntax/src/Distribution/SPDX/LicenseId.hs

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion Cabal-syntax/src/Distribution/SPDX/LicenseListVersion.hs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,11 @@ data LicenseListVersion
| LicenseListVersion_3_10
| LicenseListVersion_3_16
| LicenseListVersion_3_23
| LicenseListVersion_3_25
deriving (Eq, Ord, Show, Enum, Bounded)

cabalSpecVersionToSPDXListVersion :: CabalSpecVersion -> LicenseListVersion
cabalSpecVersionToSPDXListVersion CabalSpecV3_14 = LicenseListVersion_3_23
cabalSpecVersionToSPDXListVersion CabalSpecV3_14 = LicenseListVersion_3_25
cabalSpecVersionToSPDXListVersion CabalSpecV3_12 = LicenseListVersion_3_23
cabalSpecVersionToSPDXListVersion CabalSpecV3_8 = LicenseListVersion_3_16
cabalSpecVersionToSPDXListVersion CabalSpecV3_6 = LicenseListVersion_3_10
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ SPDX_EXCEPTION_HS:=Cabal-syntax/src/Distribution/SPDX/LicenseExceptionId.hs
.PHONY: spdx
spdx : $(SPDX_LICENSE_HS) $(SPDX_EXCEPTION_HS)

SPDX_LICENSE_VERSIONS:=3.0 3.2 3.6 3.9 3.10 3.16 3.23
SPDX_LICENSE_VERSIONS:=3.0 3.2 3.6 3.9 3.10 3.16 3.23 3.25

$(SPDX_LICENSE_HS) : templates/SPDX.LicenseId.template.hs cabal-dev-scripts/src/GenUtils.hs cabal-dev-scripts/src/GenSPDX.hs license-list-data/licenses-3.0.json license-list-data/licenses-3.2.json
cabal run --builddir=dist-newstyle-meta --project-file=cabal.meta.project gen-spdx -- templates/SPDX.LicenseId.template.hs $(SPDX_LICENSE_VERSIONS:%=license-list-data/licenses-%.json) $(SPDX_LICENSE_HS)
Expand Down
1 change: 1 addition & 0 deletions cabal-dev-scripts/src/GenSPDX.hs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ main = generate =<< O.execParser opts where
<*> licenses "3.10"
<*> licenses "3.16"
<*> licenses "3.23"
<*> licenses "3.25"

template = O.strArgument $ mconcat
[ O.metavar "SPDX.LicenseId.template.hs"
Expand Down
1 change: 1 addition & 0 deletions cabal-dev-scripts/src/GenSPDXExc.hs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ main = generate =<< O.execParser opts where
<*> licenses "3.10"
<*> licenses "3.16"
<*> licenses "3.23"
<*> licenses "3.25"

template = O.strArgument $ mconcat
[ O.metavar "SPDX.LicenseExceptionId.template.hs"
Expand Down
21 changes: 13 additions & 8 deletions cabal-dev-scripts/src/GenUtils.hs
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,14 @@ data SPDXLicenseListVersion
| SPDXLicenseListVersion_3_10
| SPDXLicenseListVersion_3_16
| SPDXLicenseListVersion_3_23
| SPDXLicenseListVersion_3_25
deriving (Eq, Ord, Show, Enum, Bounded)

allVers :: Set.Set SPDXLicenseListVersion
allVers = Set.fromList [minBound .. maxBound]

prettyVer :: SPDXLicenseListVersion -> Text
prettyVer SPDXLicenseListVersion_3_25 = "SPDX License List 3.25"
prettyVer SPDXLicenseListVersion_3_23 = "SPDX License List 3.23"
prettyVer SPDXLicenseListVersion_3_16 = "SPDX License List 3.16"
prettyVer SPDXLicenseListVersion_3_10 = "SPDX License List 3.10"
Expand All @@ -48,6 +50,7 @@ prettyVer SPDXLicenseListVersion_3_2 = "SPDX License List 3.2"
prettyVer SPDXLicenseListVersion_3_0 = "SPDX License List 3.0"

suffixVer :: SPDXLicenseListVersion -> String
suffixVer SPDXLicenseListVersion_3_25 = "_3_25"
suffixVer SPDXLicenseListVersion_3_23 = "_3_23"
suffixVer SPDXLicenseListVersion_3_16 = "_3_16"
suffixVer SPDXLicenseListVersion_3_10 = "_3_10"
Expand All @@ -60,21 +63,22 @@ suffixVer SPDXLicenseListVersion_3_0 = "_3_0"
-- Per version
-------------------------------------------------------------------------------

data PerV a = PerV a a a a a a a
data PerV a = PerV a a a a a a a a
deriving (Show, Functor, Foldable, Traversable)

class Functor f => Representable i f | f -> i where
index :: i -> f a -> a
tabulate :: (i -> a) -> f a

instance Representable SPDXLicenseListVersion PerV where
index SPDXLicenseListVersion_3_0 (PerV x _ _ _ _ _ _) = x
index SPDXLicenseListVersion_3_2 (PerV _ x _ _ _ _ _) = x
index SPDXLicenseListVersion_3_6 (PerV _ _ x _ _ _ _) = x
index SPDXLicenseListVersion_3_9 (PerV _ _ _ x _ _ _) = x
index SPDXLicenseListVersion_3_10 (PerV _ _ _ _ x _ _) = x
index SPDXLicenseListVersion_3_16 (PerV _ _ _ _ _ x _) = x
index SPDXLicenseListVersion_3_23 (PerV _ _ _ _ _ _ x) = x
index SPDXLicenseListVersion_3_0 (PerV x _ _ _ _ _ _ _) = x
index SPDXLicenseListVersion_3_2 (PerV _ x _ _ _ _ _ _) = x
index SPDXLicenseListVersion_3_6 (PerV _ _ x _ _ _ _ _) = x
index SPDXLicenseListVersion_3_9 (PerV _ _ _ x _ _ _ _) = x
index SPDXLicenseListVersion_3_10 (PerV _ _ _ _ x _ _ _) = x
index SPDXLicenseListVersion_3_16 (PerV _ _ _ _ _ x _ _) = x
index SPDXLicenseListVersion_3_23 (PerV _ _ _ _ _ _ x _) = x
index SPDXLicenseListVersion_3_25 (PerV _ _ _ _ _ _ _ x) = x

tabulate f = PerV
(f SPDXLicenseListVersion_3_0)
Expand All @@ -84,6 +88,7 @@ instance Representable SPDXLicenseListVersion PerV where
(f SPDXLicenseListVersion_3_10)
(f SPDXLicenseListVersion_3_16)
(f SPDXLicenseListVersion_3_23)
(f SPDXLicenseListVersion_3_25)

-------------------------------------------------------------------------------
-- Sorting
Expand Down
2 changes: 2 additions & 0 deletions doc/file-format-changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ relative to the respective preceding *published* version.
* Added field ``extra-files`` for specifying extra files to be included in
``sdist`` without adding any other semantics (cf. ``extra-source-files``
is tracked by ``cabal build``).
* License fields use identifiers from SPDX License List version
``3.25 2024-08-19``.

``cabal-version: 3.12``
-----------------------
Expand Down
10 changes: 9 additions & 1 deletion templates/SPDX.LicenseExceptionId.template.hs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import qualified Text.PrettyPrint as Disp
-- LicenseExceptionId
-------------------------------------------------------------------------------

-- | SPDX License Exceptions identifiers list v3.23
-- | SPDX License Exceptions identifiers list v3.25
data LicenseExceptionId
{{ licenseIds }}
deriving (Eq, Ord, Enum, Bounded, Show, Read, Typeable, Data, Generic)
Expand Down Expand Up @@ -101,6 +101,9 @@ licenseExceptionIdList LicenseListVersion_3_16 =
licenseExceptionIdList LicenseListVersion_3_23 =
{{licenseList_perv.v_3_23}}
++ bulkOfLicenses
licenseExceptionIdList LicenseListVersion_3_25 =
{{licenseList_perv.v_3_25}}
++ bulkOfLicenses

-- | Create a 'LicenseExceptionId' from a 'String'.
mkLicenseExceptionId :: LicenseListVersion -> String -> Maybe LicenseExceptionId
Expand All @@ -111,6 +114,7 @@ mkLicenseExceptionId LicenseListVersion_3_9 s = Map.lookup s stringLookup_3_9
mkLicenseExceptionId LicenseListVersion_3_10 s = Map.lookup s stringLookup_3_10
mkLicenseExceptionId LicenseListVersion_3_16 s = Map.lookup s stringLookup_3_16
mkLicenseExceptionId LicenseListVersion_3_23 s = Map.lookup s stringLookup_3_23
mkLicenseExceptionId LicenseListVersion_3_25 s = Map.lookup s stringLookup_3_25

stringLookup_3_0 :: Map String LicenseExceptionId
stringLookup_3_0 = Map.fromList $ map (\i -> (licenseExceptionId i, i)) $
Expand Down Expand Up @@ -140,6 +144,10 @@ stringLookup_3_23 :: Map String LicenseExceptionId
stringLookup_3_23 = Map.fromList $ map (\i -> (licenseExceptionId i, i)) $
licenseExceptionIdList LicenseListVersion_3_23

stringLookup_3_25 :: Map String LicenseExceptionId
stringLookup_3_25 = Map.fromList $ map (\i -> (licenseExceptionId i, i)) $
licenseExceptionIdList LicenseListVersion_3_25

-- | License exceptions in all SPDX License lists
bulkOfLicenses :: [LicenseExceptionId]
bulkOfLicenses =
Expand Down
10 changes: 9 additions & 1 deletion templates/SPDX.LicenseId.template.hs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import qualified Text.PrettyPrint as Disp
-- LicenseId
-------------------------------------------------------------------------------

-- | SPDX License identifiers list v3.23
-- | SPDX License identifiers list v3.25
data LicenseId
{{ licenseIds }}
deriving (Eq, Ord, Enum, Bounded, Show, Read, Typeable, Data)
Expand Down Expand Up @@ -178,6 +178,9 @@ licenseIdList LicenseListVersion_3_16 =
licenseIdList LicenseListVersion_3_23 =
{{licenseList_perv.v_3_23}}
++ bulkOfLicenses
licenseIdList LicenseListVersion_3_25 =
{{licenseList_perv.v_3_25}}
++ bulkOfLicenses

-- | Create a 'LicenseId' from a 'String'.
mkLicenseId :: LicenseListVersion -> String -> Maybe LicenseId
Expand All @@ -188,6 +191,7 @@ mkLicenseId LicenseListVersion_3_9 s = Map.lookup s stringLookup_3_9
mkLicenseId LicenseListVersion_3_10 s = Map.lookup s stringLookup_3_10
mkLicenseId LicenseListVersion_3_16 s = Map.lookup s stringLookup_3_16
mkLicenseId LicenseListVersion_3_23 s = Map.lookup s stringLookup_3_23
mkLicenseId LicenseListVersion_3_25 s = Map.lookup s stringLookup_3_25

stringLookup_3_0 :: Map String LicenseId
stringLookup_3_0 = Map.fromList $ map (\i -> (licenseId i, i)) $
Expand Down Expand Up @@ -217,6 +221,10 @@ stringLookup_3_23 :: Map String LicenseId
stringLookup_3_23 = Map.fromList $ map (\i -> (licenseId i, i)) $
licenseIdList LicenseListVersion_3_23

stringLookup_3_25 :: Map String LicenseId
stringLookup_3_25 = Map.fromList $ map (\i -> (licenseId i, i)) $
licenseIdList LicenseListVersion_3_25

-- | Licenses in all SPDX License lists
bulkOfLicenses :: [LicenseId]
bulkOfLicenses =
Expand Down

0 comments on commit 0874a09

Please sign in to comment.