packages feed

Cabal-syntax 3.12.1.0 → 3.14.0.0

raw patch · 33 files changed

+1574/−608 lines, 33 filesdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base

API changes (from Hackage documentation)

- Distribution.Compat.Typeable: class () => Typeable (a :: k)
- Distribution.Compat.Typeable: type TypeRep = SomeTypeRep
- Distribution.Compat.Typeable: typeRep :: forall {k} proxy (a :: k). Typeable a => proxy a -> TypeRep
- Distribution.PackageDescription.FieldGrammar: CompatFilePath :: FilePath -> CompatFilePath
- Distribution.PackageDescription.FieldGrammar: [getCompatFilePath] :: CompatFilePath -> FilePath
- Distribution.PackageDescription.FieldGrammar: instance Distribution.Compat.Newtype.Newtype GHC.Base.String Distribution.PackageDescription.FieldGrammar.CompatFilePath
- Distribution.PackageDescription.FieldGrammar: instance Distribution.Compat.Newtype.Newtype [Distribution.Utils.Path.SymbolicPath Distribution.Utils.Path.PackageDir Distribution.Utils.Path.LicenseFile] Distribution.PackageDescription.FieldGrammar.CompatLicenseFile
- Distribution.PackageDescription.FieldGrammar: instance Distribution.Parsec.Parsec Distribution.PackageDescription.FieldGrammar.CompatFilePath
- Distribution.PackageDescription.FieldGrammar: instance Distribution.Pretty.Pretty Distribution.PackageDescription.FieldGrammar.CompatFilePath
- Distribution.PackageDescription.FieldGrammar: newtype CompatFilePath
- Distribution.Utils.Path: class IsDir dir
- Distribution.Utils.Path: data LicenseFile
- Distribution.Utils.Path: data PackageDir
- Distribution.Utils.Path: data SourceDir
- Distribution.Utils.Path: data SymbolicPath from to
- Distribution.Utils.Path: instance (Data.Data.Data from, Data.Data.Data to) => Data.Data.Data (Distribution.Utils.Path.SymbolicPath from to)
- Distribution.Utils.Path: instance (Data.Typeable.Internal.Typeable from, Data.Typeable.Internal.Typeable to) => Distribution.Utils.Structured.Structured (Distribution.Utils.Path.SymbolicPath from to)
- Distribution.Utils.Path: instance Control.DeepSeq.NFData (Distribution.Utils.Path.SymbolicPath from to)
- Distribution.Utils.Path: instance Data.Binary.Class.Binary (Distribution.Utils.Path.SymbolicPath from to)
- Distribution.Utils.Path: instance Data.Data.Data Distribution.Utils.Path.LicenseFile
- Distribution.Utils.Path: instance Data.Data.Data Distribution.Utils.Path.PackageDir
- Distribution.Utils.Path: instance Data.Data.Data Distribution.Utils.Path.SourceDir
- Distribution.Utils.Path: instance Distribution.Parsec.Parsec (Distribution.Utils.Path.SymbolicPath from to)
- Distribution.Utils.Path: instance Distribution.Pretty.Pretty (Distribution.Utils.Path.SymbolicPath from to)
- Distribution.Utils.Path: instance Distribution.Utils.Path.IsDir Distribution.Utils.Path.PackageDir
- Distribution.Utils.Path: instance Distribution.Utils.Path.IsDir Distribution.Utils.Path.SourceDir
- Distribution.Utils.Path: instance GHC.Classes.Eq (Distribution.Utils.Path.SymbolicPath from to)
- Distribution.Utils.Path: instance GHC.Classes.Ord (Distribution.Utils.Path.SymbolicPath from to)
- Distribution.Utils.Path: instance GHC.Generics.Generic (Distribution.Utils.Path.SymbolicPath from to)
- Distribution.Utils.Path: instance GHC.Read.Read (Distribution.Utils.Path.SymbolicPath from to)
- Distribution.Utils.Path: instance GHC.Show.Show (Distribution.Utils.Path.SymbolicPath from to)
+ Distribution.CabalSpecVersion: CabalSpecV3_14 :: CabalSpecVersion
+ Distribution.FieldGrammar.Newtypes: RelativePathNT :: RelativePath from to -> RelativePathNT from to
+ Distribution.FieldGrammar.Newtypes: SymbolicPathNT :: SymbolicPath from to -> SymbolicPathNT from to
+ Distribution.FieldGrammar.Newtypes: [getRelativePathNT] :: RelativePathNT from to -> RelativePath from to
+ Distribution.FieldGrammar.Newtypes: [getSymbolicPathNT] :: SymbolicPathNT from to -> SymbolicPath from to
+ Distribution.FieldGrammar.Newtypes: instance Distribution.Compat.Newtype.Newtype (Distribution.Utils.Path.RelativePath from to) (Distribution.FieldGrammar.Newtypes.RelativePathNT from to)
+ Distribution.FieldGrammar.Newtypes: instance Distribution.Compat.Newtype.Newtype (Distribution.Utils.Path.SymbolicPath from to) (Distribution.FieldGrammar.Newtypes.SymbolicPathNT from to)
+ Distribution.FieldGrammar.Newtypes: instance Distribution.Parsec.Parsec (Distribution.FieldGrammar.Newtypes.RelativePathNT from to)
+ Distribution.FieldGrammar.Newtypes: instance Distribution.Parsec.Parsec (Distribution.FieldGrammar.Newtypes.SymbolicPathNT from to)
+ Distribution.FieldGrammar.Newtypes: instance Distribution.Pretty.Pretty (Distribution.FieldGrammar.Newtypes.RelativePathNT from to)
+ Distribution.FieldGrammar.Newtypes: instance Distribution.Pretty.Pretty (Distribution.FieldGrammar.Newtypes.SymbolicPathNT from to)
+ Distribution.FieldGrammar.Newtypes: newtype RelativePathNT from to
+ Distribution.FieldGrammar.Newtypes: newtype SymbolicPathNT from to
+ Distribution.PackageDescription.FieldGrammar: CompatDataDir :: SymbolicPath Pkg (Dir DataDir) -> CompatDataDir
+ Distribution.PackageDescription.FieldGrammar: [getCompatDataDir] :: CompatDataDir -> SymbolicPath Pkg (Dir DataDir)
+ Distribution.PackageDescription.FieldGrammar: instance Distribution.Compat.Newtype.Newtype (Distribution.Utils.Path.SymbolicPath Distribution.Utils.Path.Pkg ('Distribution.Utils.Path.Dir Distribution.Utils.Path.DataDir)) Distribution.PackageDescription.FieldGrammar.CompatDataDir
+ Distribution.PackageDescription.FieldGrammar: instance Distribution.Compat.Newtype.Newtype [Distribution.Utils.Path.RelativePath Distribution.Utils.Path.Pkg 'Distribution.Utils.Path.File] Distribution.PackageDescription.FieldGrammar.CompatLicenseFile
+ Distribution.PackageDescription.FieldGrammar: instance Distribution.Parsec.Parsec Distribution.PackageDescription.FieldGrammar.CompatDataDir
+ Distribution.PackageDescription.FieldGrammar: instance Distribution.Pretty.Pretty Distribution.PackageDescription.FieldGrammar.CompatDataDir
+ Distribution.PackageDescription.FieldGrammar: newtype CompatDataDir
+ Distribution.SPDX: AMD_newlib :: LicenseId
+ Distribution.SPDX: Any_OSI :: LicenseId
+ Distribution.SPDX: Asterisk_linking_protocols_exception :: LicenseExceptionId
+ Distribution.SPDX: BSD_2_Clause_first_lines :: LicenseId
+ Distribution.SPDX: Catharon :: LicenseId
+ Distribution.SPDX: Cve_tou :: LicenseId
+ Distribution.SPDX: DocBook_Schema :: LicenseId
+ Distribution.SPDX: DocBook_XML :: LicenseId
+ Distribution.SPDX: Erlang_otp_linking_exception :: LicenseExceptionId
+ Distribution.SPDX: Gutmann :: LicenseId
+ Distribution.SPDX: HIDAPI :: LicenseId
+ Distribution.SPDX: HPND_Intel :: LicenseId
+ Distribution.SPDX: HPND_Netrek :: LicenseId
+ Distribution.SPDX: HPND_UC_export_US :: LicenseId
+ Distribution.SPDX: HPND_export2_US :: LicenseId
+ Distribution.SPDX: HPND_export_US_acknowledgement :: LicenseId
+ Distribution.SPDX: HPND_merchantability_variant :: LicenseId
+ Distribution.SPDX: HPND_sell_variant_MIT_disclaimer_rev :: LicenseId
+ Distribution.SPDX: LicenseListVersion_3_25 :: LicenseListVersion
+ Distribution.SPDX: MIT_Khronos_old :: LicenseId
+ Distribution.SPDX: NCBI_PD :: LicenseId
+ Distribution.SPDX: NCL :: LicenseId
+ Distribution.SPDX: OAR :: LicenseId
+ Distribution.SPDX: PCRE2_exception :: LicenseExceptionId
+ Distribution.SPDX: PPL :: LicenseId
+ Distribution.SPDX: Pkgconf :: LicenseId
+ Distribution.SPDX: RRDtool_FLOSS_exception_2_0 :: LicenseExceptionId
+ Distribution.SPDX: Romic_exception :: LicenseExceptionId
+ Distribution.SPDX: Ruby_pty :: LicenseId
+ Distribution.SPDX: Sun_PPP_2000 :: LicenseId
+ Distribution.SPDX: Threeparttable :: LicenseId
+ Distribution.SPDX: Ubuntu_font_1_0 :: LicenseId
+ Distribution.SPDX: X11_swapped :: LicenseId
+ Distribution.SPDX: X3D_Slicer_1_0 :: LicenseId
+ Distribution.SPDX: Xzoom :: LicenseId
+ Distribution.SPDX.LicenseExceptionId: Asterisk_linking_protocols_exception :: LicenseExceptionId
+ Distribution.SPDX.LicenseExceptionId: Erlang_otp_linking_exception :: LicenseExceptionId
+ Distribution.SPDX.LicenseExceptionId: PCRE2_exception :: LicenseExceptionId
+ Distribution.SPDX.LicenseExceptionId: RRDtool_FLOSS_exception_2_0 :: LicenseExceptionId
+ Distribution.SPDX.LicenseExceptionId: Romic_exception :: LicenseExceptionId
+ Distribution.SPDX.LicenseId: AMD_newlib :: LicenseId
+ Distribution.SPDX.LicenseId: Any_OSI :: LicenseId
+ Distribution.SPDX.LicenseId: BSD_2_Clause_first_lines :: LicenseId
+ Distribution.SPDX.LicenseId: Catharon :: LicenseId
+ Distribution.SPDX.LicenseId: Cve_tou :: LicenseId
+ Distribution.SPDX.LicenseId: DocBook_Schema :: LicenseId
+ Distribution.SPDX.LicenseId: DocBook_XML :: LicenseId
+ Distribution.SPDX.LicenseId: Gutmann :: LicenseId
+ Distribution.SPDX.LicenseId: HIDAPI :: LicenseId
+ Distribution.SPDX.LicenseId: HPND_Intel :: LicenseId
+ Distribution.SPDX.LicenseId: HPND_Netrek :: LicenseId
+ Distribution.SPDX.LicenseId: HPND_UC_export_US :: LicenseId
+ Distribution.SPDX.LicenseId: HPND_export2_US :: LicenseId
+ Distribution.SPDX.LicenseId: HPND_export_US_acknowledgement :: LicenseId
+ Distribution.SPDX.LicenseId: HPND_merchantability_variant :: LicenseId
+ Distribution.SPDX.LicenseId: HPND_sell_variant_MIT_disclaimer_rev :: LicenseId
+ Distribution.SPDX.LicenseId: MIT_Khronos_old :: LicenseId
+ Distribution.SPDX.LicenseId: NCBI_PD :: LicenseId
+ Distribution.SPDX.LicenseId: NCL :: LicenseId
+ Distribution.SPDX.LicenseId: OAR :: LicenseId
+ Distribution.SPDX.LicenseId: PPL :: LicenseId
+ Distribution.SPDX.LicenseId: Pkgconf :: LicenseId
+ Distribution.SPDX.LicenseId: Ruby_pty :: LicenseId
+ Distribution.SPDX.LicenseId: Sun_PPP_2000 :: LicenseId
+ Distribution.SPDX.LicenseId: Threeparttable :: LicenseId
+ Distribution.SPDX.LicenseId: Ubuntu_font_1_0 :: LicenseId
+ Distribution.SPDX.LicenseId: X11_swapped :: LicenseId
+ Distribution.SPDX.LicenseId: X3D_Slicer_1_0 :: LicenseId
+ Distribution.SPDX.LicenseId: Xzoom :: LicenseId
+ Distribution.SPDX.LicenseListVersion: LicenseListVersion_3_25 :: LicenseListVersion
+ Distribution.Types.BuildInfo: [profSharedOptions] :: BuildInfo -> PerCompilerFlavor [String]
+ Distribution.Types.BuildInfo: hcProfSharedOptions :: CompilerFlavor -> BuildInfo -> [String]
+ Distribution.Types.BuildInfo.Lens: profSharedOptions :: HasBuildInfo a => Lens' a (PerCompilerFlavor [String])
+ Distribution.Types.BuildType: Hooks :: BuildType
+ Distribution.Types.PackageDescription: [extraFiles] :: PackageDescription -> [RelativePath Pkg File]
+ Distribution.Types.PackageDescription.Lens: extraFiles :: Lens' PackageDescription [RelativePath Pkg File]
+ Distribution.Utils.Path: (<.>) :: FileLike p => p -> String -> p
+ Distribution.Utils.Path: (</>) :: PathLike p q r => p -> q -> r
+ Distribution.Utils.Path: AbsolutePath :: (forall from. SymbolicPath from to) -> AbsolutePath (to :: FileOrDir)
+ Distribution.Utils.Path: AllowAbsolute :: AllowAbsolute
+ Distribution.Utils.Path: Dir :: Type -> FileOrDir
+ Distribution.Utils.Path: File :: FileOrDir
+ Distribution.Utils.Path: OnlyRelative :: AllowAbsolute
+ Distribution.Utils.Path: absoluteWorkingDir :: Maybe (SymbolicPath CWD to) -> IO (AbsolutePath to)
+ Distribution.Utils.Path: coerceSymbolicPath :: SymbolicPathX allowAbsolute from to1 -> SymbolicPathX allowAbsolute from to2
+ Distribution.Utils.Path: data AllowAbsolute
+ Distribution.Utils.Path: data Artifacts
+ Distribution.Utils.Path: data Build
+ Distribution.Utils.Path: data CWD
+ Distribution.Utils.Path: data DataDir
+ Distribution.Utils.Path: data Dist
+ Distribution.Utils.Path: data FileOrDir
+ Distribution.Utils.Path: data Framework
+ Distribution.Utils.Path: data Include
+ Distribution.Utils.Path: data Lib
+ Distribution.Utils.Path: data Mix
+ Distribution.Utils.Path: data Pkg
+ Distribution.Utils.Path: data PkgConf
+ Distribution.Utils.Path: data PkgDB
+ Distribution.Utils.Path: data Response
+ Distribution.Utils.Path: data Source
+ Distribution.Utils.Path: data SymbolicPathX (allowAbsolute :: AllowAbsolute) (from :: Type) (to :: FileOrDir)
+ Distribution.Utils.Path: data Tix
+ Distribution.Utils.Path: data Tmp
+ Distribution.Utils.Path: dropExtensionsSymbolicPath :: SymbolicPathX allowAbsolute from File -> SymbolicPathX allowAbsolute from File
+ Distribution.Utils.Path: getAbsolutePath :: AbsolutePath to -> FilePath
+ Distribution.Utils.Path: infixr 5 </>
+ Distribution.Utils.Path: infixr 7 <.>
+ Distribution.Utils.Path: instance (Data.Typeable.Internal.Typeable allowAbsolute, Data.Typeable.Internal.Typeable from, Data.Typeable.Internal.Typeable to) => Distribution.Utils.Structured.Structured (Distribution.Utils.Path.SymbolicPathX allowAbsolute from to)
+ Distribution.Utils.Path: instance (Data.Typeable.Internal.Typeable from, Data.Typeable.Internal.Typeable allowAbsolute, Data.Typeable.Internal.Typeable to) => Data.Data.Data (Distribution.Utils.Path.SymbolicPathX allowAbsolute from to)
+ Distribution.Utils.Path: instance (b1 GHC.Types.~ 'Distribution.Utils.Path.Dir b2, a3 GHC.Types.~ a1, c2 GHC.Types.~ c3, midAbsolute GHC.Types.~ 'Distribution.Utils.Path.OnlyRelative) => Distribution.Utils.Path.PathLike (Distribution.Utils.Path.SymbolicPathX allowAbsolute a1 b1) (Distribution.Utils.Path.SymbolicPathX midAbsolute b2 c2) (Distribution.Utils.Path.SymbolicPathX allowAbsolute a3 c3)
+ Distribution.Utils.Path: instance (b1 GHC.Types.~ 'Distribution.Utils.Path.Dir b2, c2 GHC.Types.~ c3, midAbsolute GHC.Types.~ 'Distribution.Utils.Path.OnlyRelative) => Distribution.Utils.Path.PathLike (Distribution.Utils.Path.AbsolutePath b1) (Distribution.Utils.Path.SymbolicPathX midAbsolute b2 c2) (Distribution.Utils.Path.AbsolutePath c3)
+ Distribution.Utils.Path: instance (p GHC.Types.~ 'Distribution.Utils.Path.File) => Distribution.Utils.Path.FileLike (Distribution.Utils.Path.SymbolicPathX allowAbsolute dir p)
+ Distribution.Utils.Path: instance Control.DeepSeq.NFData (Distribution.Utils.Path.SymbolicPathX allowAbsolute from to)
+ Distribution.Utils.Path: instance Data.Binary.Class.Binary (Distribution.Utils.Path.SymbolicPathX allowAbsolute from to)
+ Distribution.Utils.Path: instance Distribution.Parsec.Parsec (Distribution.Utils.Path.SymbolicPathX 'Distribution.Utils.Path.AllowAbsolute from to)
+ Distribution.Utils.Path: instance Distribution.Parsec.Parsec (Distribution.Utils.Path.SymbolicPathX 'Distribution.Utils.Path.OnlyRelative from to)
+ Distribution.Utils.Path: instance Distribution.Pretty.Pretty (Distribution.Utils.Path.SymbolicPathX allowAbsolute from to)
+ Distribution.Utils.Path: instance Distribution.Utils.Path.FileLike GHC.IO.FilePath
+ Distribution.Utils.Path: instance Distribution.Utils.Path.PathLike GHC.IO.FilePath GHC.IO.FilePath GHC.IO.FilePath
+ Distribution.Utils.Path: instance GHC.Classes.Eq (Distribution.Utils.Path.SymbolicPathX allowAbsolute from to)
+ Distribution.Utils.Path: instance GHC.Classes.Ord (Distribution.Utils.Path.SymbolicPathX allowAbsolute from to)
+ Distribution.Utils.Path: instance GHC.Generics.Generic (Distribution.Utils.Path.SymbolicPathX allowAbsolute from to)
+ Distribution.Utils.Path: instance GHC.Read.Read (Distribution.Utils.Path.SymbolicPathX allowAbsolute from to)
+ Distribution.Utils.Path: instance GHC.Show.Show (Distribution.Utils.Path.SymbolicPathX allowAbsolute from to)
+ Distribution.Utils.Path: interpretSymbolicPath :: Maybe (SymbolicPath CWD (Dir from)) -> SymbolicPathX allowAbsolute from to -> FilePath
+ Distribution.Utils.Path: interpretSymbolicPathAbsolute :: AbsolutePath (Dir Pkg) -> SymbolicPathX allowAbsolute Pkg to -> FilePath
+ Distribution.Utils.Path: interpretSymbolicPathCWD :: SymbolicPathX allowAbsolute from to -> FilePath
+ Distribution.Utils.Path: makeRelativePathEx :: HasCallStack => FilePath -> RelativePath from to
+ Distribution.Utils.Path: makeSymbolicPath :: FilePath -> SymbolicPath from to
+ Distribution.Utils.Path: moduleNameSymbolicPath :: ModuleName -> SymbolicPathX allowAbsolute Source File
+ Distribution.Utils.Path: newtype AbsolutePath (to :: FileOrDir)
+ Distribution.Utils.Path: normaliseSymbolicPath :: SymbolicPathX allowAbsolute from to -> SymbolicPathX allowAbsolute from to
+ Distribution.Utils.Path: relativeSymbolicPath :: RelativePath from to -> SymbolicPath from to
+ Distribution.Utils.Path: replaceExtensionSymbolicPath :: SymbolicPathX allowAbsolute from File -> String -> SymbolicPathX allowAbsolute from File
+ Distribution.Utils.Path: symbolicPathRelative_maybe :: SymbolicPath from to -> Maybe (RelativePath from to)
+ Distribution.Utils.Path: takeDirectorySymbolicPath :: SymbolicPathX allowAbsolute from File -> SymbolicPathX allowAbsolute from (Dir to')
+ Distribution.Utils.Path: tryMakeRelative :: Maybe (SymbolicPath CWD (Dir dir)) -> SymbolicPath dir to -> IO (SymbolicPath dir to)
+ Distribution.Utils.Path: type RelativePath = SymbolicPathX 'OnlyRelative
+ Distribution.Utils.Path: type SymbolicPath = SymbolicPathX 'AllowAbsolute
+ Distribution.Utils.Path: unsafeCoerceSymbolicPath :: SymbolicPathX allowAbsolute from1 to1 -> SymbolicPathX allowAbsolute from2 to2
+ Distribution.Utils.Structured: instance (Distribution.Utils.Structured.Structured a1, Distribution.Utils.Structured.Structured a2) => Distribution.Utils.Structured.Structured (Distribution.Utils.Structured.STuple2 a1 a2)
+ Distribution.Utils.Structured: instance (Distribution.Utils.Structured.Structured a1, Distribution.Utils.Structured.Structured a2, Distribution.Utils.Structured.Structured a3) => Distribution.Utils.Structured.Structured (Distribution.Utils.Structured.STuple3 a1 a2 a3)
+ Distribution.Utils.Structured: instance (Distribution.Utils.Structured.Structured a1, Distribution.Utils.Structured.Structured a2, Distribution.Utils.Structured.Structured a3, Distribution.Utils.Structured.Structured a4) => Distribution.Utils.Structured.Structured (Distribution.Utils.Structured.STuple4 a1 a2 a3 a4)
+ Distribution.Utils.Structured: instance (Distribution.Utils.Structured.Structured a1, Distribution.Utils.Structured.Structured a2, Distribution.Utils.Structured.Structured a3, Distribution.Utils.Structured.Structured a4, Distribution.Utils.Structured.Structured a5) => Distribution.Utils.Structured.Structured (Distribution.Utils.Structured.STuple5 a1 a2 a3 a4 a5)
+ Distribution.Utils.Structured: instance (Distribution.Utils.Structured.Structured a1, Distribution.Utils.Structured.Structured a2, Distribution.Utils.Structured.Structured a3, Distribution.Utils.Structured.Structured a4, Distribution.Utils.Structured.Structured a5, Distribution.Utils.Structured.Structured a6) => Distribution.Utils.Structured.Structured (Distribution.Utils.Structured.STuple6 a1 a2 a3 a4 a5 a6)
+ Distribution.Utils.Structured: instance (Distribution.Utils.Structured.Structured a1, Distribution.Utils.Structured.Structured a2, Distribution.Utils.Structured.Structured a3, Distribution.Utils.Structured.Structured a4, Distribution.Utils.Structured.Structured a5, Distribution.Utils.Structured.Structured a6, Distribution.Utils.Structured.Structured a7) => Distribution.Utils.Structured.Structured (Distribution.Utils.Structured.STuple7 a1 a2 a3 a4 a5 a6 a7)
+ Distribution.Utils.Structured: instance GHC.Generics.Generic (Distribution.Utils.Structured.STuple2 a b)
+ Distribution.Utils.Structured: instance GHC.Generics.Generic (Distribution.Utils.Structured.STuple3 a b c)
+ Distribution.Utils.Structured: instance GHC.Generics.Generic (Distribution.Utils.Structured.STuple4 a b c d)
+ Distribution.Utils.Structured: instance GHC.Generics.Generic (Distribution.Utils.Structured.STuple5 a b c d e)
+ Distribution.Utils.Structured: instance GHC.Generics.Generic (Distribution.Utils.Structured.STuple6 a b c d e f)
+ Distribution.Utils.Structured: instance GHC.Generics.Generic (Distribution.Utils.Structured.STuple7 a b c d e f g)
+ Language.Haskell.Extension: MultilineStrings :: KnownExtension
+ Language.Haskell.Extension: NamedDefaults :: KnownExtension
+ Language.Haskell.Extension: OrPatterns :: KnownExtension
- Distribution.PackageDescription.FieldGrammar: BenchmarkStanza :: Maybe BenchmarkType -> Maybe FilePath -> Maybe ModuleName -> BuildInfo -> BenchmarkStanza
+ Distribution.PackageDescription.FieldGrammar: BenchmarkStanza :: Maybe BenchmarkType -> Maybe (RelativePath Source File) -> Maybe ModuleName -> BuildInfo -> BenchmarkStanza
- Distribution.PackageDescription.FieldGrammar: CompatLicenseFile :: [SymbolicPath PackageDir LicenseFile] -> CompatLicenseFile
+ Distribution.PackageDescription.FieldGrammar: CompatLicenseFile :: [RelativePath Pkg File] -> CompatLicenseFile
- Distribution.PackageDescription.FieldGrammar: TestSuiteStanza :: Maybe TestType -> Maybe FilePath -> Maybe ModuleName -> BuildInfo -> [String] -> TestSuiteStanza
+ Distribution.PackageDescription.FieldGrammar: TestSuiteStanza :: Maybe TestType -> Maybe (RelativePath Source File) -> Maybe ModuleName -> BuildInfo -> [String] -> TestSuiteStanza
- Distribution.PackageDescription.FieldGrammar: [_benchmarkStanzaMainIs] :: BenchmarkStanza -> Maybe FilePath
+ Distribution.PackageDescription.FieldGrammar: [_benchmarkStanzaMainIs] :: BenchmarkStanza -> Maybe (RelativePath Source File)
- Distribution.PackageDescription.FieldGrammar: [_testStanzaMainIs] :: TestSuiteStanza -> Maybe FilePath
+ Distribution.PackageDescription.FieldGrammar: [_testStanzaMainIs] :: TestSuiteStanza -> Maybe (RelativePath Source File)
- Distribution.PackageDescription.FieldGrammar: [getCompatLicenseFile] :: CompatLicenseFile -> [SymbolicPath PackageDir LicenseFile]
+ Distribution.PackageDescription.FieldGrammar: [getCompatLicenseFile] :: CompatLicenseFile -> [RelativePath Pkg File]
- Distribution.PackageDescription.FieldGrammar: benchmarkFieldGrammar :: (FieldGrammar c g, Applicative (g BenchmarkStanza), Applicative (g BuildInfo), c (Identity BenchmarkType), c (Identity ModuleName), c (List CommaFSep (Identity ExeDependency) ExeDependency), c (List CommaFSep (Identity LegacyExeDependency) LegacyExeDependency), c (List CommaFSep (Identity PkgconfigDependency) PkgconfigDependency), c (List CommaVCat (Identity Dependency) Dependency), c (List CommaVCat (Identity Mixin) Mixin), c (List FSep (MQuoted Extension) Extension), c (List FSep (MQuoted Language) Language), c (List FSep FilePathNT String), c (List FSep Token String), c (List NoCommaFSep Token' String), c (List VCat (MQuoted ModuleName) ModuleName), c (List VCat FilePathNT String), c (List FSep (Identity (SymbolicPath PackageDir SourceDir)) (SymbolicPath PackageDir SourceDir)), c (List VCat Token String), c (MQuoted Language)) => g BenchmarkStanza BenchmarkStanza
+ Distribution.PackageDescription.FieldGrammar: benchmarkFieldGrammar :: (FieldGrammar c g, Applicative (g BenchmarkStanza), Applicative (g BuildInfo), c (Identity BenchmarkType), c (Identity ModuleName), c (List CommaFSep (Identity ExeDependency) ExeDependency), c (List CommaFSep (Identity LegacyExeDependency) LegacyExeDependency), c (List CommaFSep (Identity PkgconfigDependency) PkgconfigDependency), c (List CommaVCat (Identity Dependency) Dependency), c (List CommaVCat (Identity Mixin) Mixin), c (List FSep (MQuoted Extension) Extension), c (List FSep (MQuoted Language) Language), c (List FSep Token String), c (List NoCommaFSep Token' String), c (List VCat (MQuoted ModuleName) ModuleName), forall from to. c (List FSep (SymbolicPathNT from to) (SymbolicPath from to)), forall from to. c (List FSep (RelativePathNT from to) (RelativePath from to)), forall from to. c (List VCat (SymbolicPathNT from to) (SymbolicPath from to)), forall from to. c (RelativePathNT from to), c (List VCat Token String), c (MQuoted Language)) => g BenchmarkStanza BenchmarkStanza
- Distribution.PackageDescription.FieldGrammar: benchmarkStanzaMainIs :: Lens' BenchmarkStanza (Maybe FilePath)
+ Distribution.PackageDescription.FieldGrammar: benchmarkStanzaMainIs :: Lens' BenchmarkStanza (Maybe (RelativePath Source File))
- Distribution.PackageDescription.FieldGrammar: buildInfoFieldGrammar :: (FieldGrammar c g, Applicative (g BuildInfo), c (List CommaFSep (Identity ExeDependency) ExeDependency), c (List CommaFSep (Identity LegacyExeDependency) LegacyExeDependency), c (List CommaFSep (Identity PkgconfigDependency) PkgconfigDependency), c (List CommaVCat (Identity Dependency) Dependency), c (List CommaVCat (Identity Mixin) Mixin), c (List FSep (MQuoted Extension) Extension), c (List FSep (MQuoted Language) Language), c (List FSep FilePathNT String), c (List FSep Token String), c (List NoCommaFSep Token' String), c (List VCat (MQuoted ModuleName) ModuleName), c (List VCat FilePathNT String), c (List FSep (Identity (SymbolicPath PackageDir SourceDir)) (SymbolicPath PackageDir SourceDir)), c (List VCat Token String), c (MQuoted Language)) => g BuildInfo BuildInfo
+ Distribution.PackageDescription.FieldGrammar: buildInfoFieldGrammar :: (FieldGrammar c g, Applicative (g BuildInfo), c (List CommaFSep (Identity ExeDependency) ExeDependency), c (List CommaFSep (Identity LegacyExeDependency) LegacyExeDependency), c (List CommaFSep (Identity PkgconfigDependency) PkgconfigDependency), c (List CommaVCat (Identity Dependency) Dependency), c (List CommaVCat (Identity Mixin) Mixin), c (List FSep (MQuoted Extension) Extension), c (List FSep (MQuoted Language) Language), c (List FSep Token String), c (List NoCommaFSep Token' String), c (List VCat (MQuoted ModuleName) ModuleName), forall from to. c (List FSep (SymbolicPathNT from to) (SymbolicPath from to)), forall from to. c (List FSep (RelativePathNT from to) (RelativePath from to)), forall from to. c (List VCat (SymbolicPathNT from to) (SymbolicPath from to)), c (List VCat Token String), c (MQuoted Language)) => g BuildInfo BuildInfo
- Distribution.PackageDescription.FieldGrammar: executableFieldGrammar :: (FieldGrammar c g, Applicative (g Executable), Applicative (g BuildInfo), c (Identity ExecutableScope), c (List CommaFSep (Identity ExeDependency) ExeDependency), c (List CommaFSep (Identity LegacyExeDependency) LegacyExeDependency), c (List CommaFSep (Identity PkgconfigDependency) PkgconfigDependency), c (List CommaVCat (Identity Dependency) Dependency), c (List CommaVCat (Identity Mixin) Mixin), c (List FSep (MQuoted Extension) Extension), c (List FSep (MQuoted Language) Language), c (List FSep FilePathNT String), c (List FSep Token String), c (List FSep (Identity (SymbolicPath PackageDir SourceDir)) (SymbolicPath PackageDir SourceDir)), c (List NoCommaFSep Token' String), c (List VCat (MQuoted ModuleName) ModuleName), c (List VCat FilePathNT String), c (List VCat Token String), c (MQuoted Language)) => UnqualComponentName -> g Executable Executable
+ Distribution.PackageDescription.FieldGrammar: executableFieldGrammar :: (FieldGrammar c g, Applicative (g Executable), Applicative (g BuildInfo), c (Identity ExecutableScope), c (List CommaFSep (Identity ExeDependency) ExeDependency), c (List CommaFSep (Identity LegacyExeDependency) LegacyExeDependency), c (List CommaFSep (Identity PkgconfigDependency) PkgconfigDependency), c (List CommaVCat (Identity Dependency) Dependency), c (List CommaVCat (Identity Mixin) Mixin), c (List FSep (MQuoted Extension) Extension), c (List FSep (MQuoted Language) Language), c (List FSep Token String), forall from to. c (List FSep (SymbolicPathNT from to) (SymbolicPath from to)), forall from to. c (List FSep (RelativePathNT from to) (RelativePath from to)), forall from to. c (List FSep (SymbolicPathNT from to) (SymbolicPath from to)), forall from to. c (List FSep (RelativePathNT from to) (RelativePath from to)), forall from to. c (List VCat (SymbolicPathNT from to) (SymbolicPath from to)), forall from to. c (SymbolicPathNT from to), forall from to. c (RelativePathNT from to), c (List NoCommaFSep Token' String), c (List VCat (MQuoted ModuleName) ModuleName), c (List VCat Token String), c (MQuoted Language)) => UnqualComponentName -> g Executable Executable
- Distribution.PackageDescription.FieldGrammar: foreignLibFieldGrammar :: (FieldGrammar c g, Applicative (g ForeignLib), Applicative (g BuildInfo), c (Identity ForeignLibType), c (Identity LibVersionInfo), c (Identity Version), c (List CommaFSep (Identity ExeDependency) ExeDependency), c (List CommaFSep (Identity LegacyExeDependency) LegacyExeDependency), c (List CommaFSep (Identity PkgconfigDependency) PkgconfigDependency), c (List CommaVCat (Identity Dependency) Dependency), c (List CommaVCat (Identity Mixin) Mixin), c (List FSep (Identity ForeignLibOption) ForeignLibOption), c (List FSep (MQuoted Extension) Extension), c (List FSep (MQuoted Language) Language), c (List FSep FilePathNT String), c (List FSep Token String), c (List FSep (Identity (SymbolicPath PackageDir SourceDir)) (SymbolicPath PackageDir SourceDir)), c (List NoCommaFSep Token' String), c (List VCat (MQuoted ModuleName) ModuleName), c (List VCat FilePathNT String), c (List VCat Token String), c (MQuoted Language)) => UnqualComponentName -> g ForeignLib ForeignLib
+ Distribution.PackageDescription.FieldGrammar: foreignLibFieldGrammar :: (FieldGrammar c g, Applicative (g ForeignLib), Applicative (g BuildInfo), c (Identity ForeignLibType), c (Identity LibVersionInfo), c (Identity Version), c (List CommaFSep (Identity ExeDependency) ExeDependency), c (List CommaFSep (Identity LegacyExeDependency) LegacyExeDependency), c (List CommaFSep (Identity PkgconfigDependency) PkgconfigDependency), c (List CommaVCat (Identity Dependency) Dependency), c (List CommaVCat (Identity Mixin) Mixin), c (List FSep (Identity ForeignLibOption) ForeignLibOption), c (List FSep (MQuoted Extension) Extension), c (List FSep (MQuoted Language) Language), c (List FSep Token String), forall from to. c (List FSep (SymbolicPathNT from to) (SymbolicPath from to)), forall from to. c (List FSep (RelativePathNT from to) (RelativePath from to)), forall from to. c (List VCat (SymbolicPathNT from to) (SymbolicPath from to)), c (List NoCommaFSep Token' String), c (List VCat (MQuoted ModuleName) ModuleName), c (List VCat Token String), c (MQuoted Language)) => UnqualComponentName -> g ForeignLib ForeignLib
- Distribution.PackageDescription.FieldGrammar: formatExtraSourceFiles :: [FilePath] -> List VCat FilePathNT FilePath
+ Distribution.PackageDescription.FieldGrammar: formatExtraSourceFiles :: [RelativePath Pkg File] -> List VCat (RelativePathNT Pkg File) (RelativePath Pkg File)
- Distribution.PackageDescription.FieldGrammar: formatHsSourceDirs :: [SymbolicPath PackageDir SourceDir] -> List FSep (Identity (SymbolicPath PackageDir SourceDir)) (SymbolicPath PackageDir SourceDir)
+ Distribution.PackageDescription.FieldGrammar: formatHsSourceDirs :: [SymbolicPath Pkg (Dir Source)] -> List FSep (SymbolicPathNT Pkg (Dir Source)) (SymbolicPath Pkg (Dir Source))
- Distribution.PackageDescription.FieldGrammar: libraryFieldGrammar :: (FieldGrammar c g, Applicative (g Library), Applicative (g BuildInfo), c (Identity LibraryVisibility), c (List CommaFSep (Identity ExeDependency) ExeDependency), c (List CommaFSep (Identity LegacyExeDependency) LegacyExeDependency), c (List CommaFSep (Identity PkgconfigDependency) PkgconfigDependency), c (List CommaVCat (Identity Dependency) Dependency), c (List CommaVCat (Identity Mixin) Mixin), c (List CommaVCat (Identity ModuleReexport) ModuleReexport), c (List FSep (MQuoted Extension) Extension), c (List FSep (MQuoted Language) Language), c (List FSep FilePathNT String), c (List FSep Token String), c (List NoCommaFSep Token' String), c (List VCat (MQuoted ModuleName) ModuleName), c (List VCat FilePathNT String), c (List FSep (Identity (SymbolicPath PackageDir SourceDir)) (SymbolicPath PackageDir SourceDir)), c (List VCat Token String), c (MQuoted Language)) => LibraryName -> g Library Library
+ Distribution.PackageDescription.FieldGrammar: libraryFieldGrammar :: (FieldGrammar c g, Applicative (g Library), Applicative (g BuildInfo), c (Identity LibraryVisibility), c (List CommaFSep (Identity ExeDependency) ExeDependency), c (List CommaFSep (Identity LegacyExeDependency) LegacyExeDependency), c (List CommaFSep (Identity PkgconfigDependency) PkgconfigDependency), c (List CommaVCat (Identity Dependency) Dependency), c (List CommaVCat (Identity Mixin) Mixin), c (List CommaVCat (Identity ModuleReexport) ModuleReexport), c (List FSep (MQuoted Extension) Extension), c (List FSep (MQuoted Language) Language), c (List FSep Token String), c (List NoCommaFSep Token' String), c (List VCat (MQuoted ModuleName) ModuleName), forall from to. c (List FSep (SymbolicPathNT from to) (SymbolicPath from to)), forall from to. c (List FSep (RelativePathNT from to) (RelativePath from to)), forall from to. c (List VCat (SymbolicPathNT from to) (SymbolicPath from to)), c (List VCat Token String), c (MQuoted Language)) => LibraryName -> g Library Library
- Distribution.PackageDescription.FieldGrammar: packageDescriptionFieldGrammar :: (FieldGrammar c g, Applicative (g PackageDescription), Applicative (g PackageIdentifier), c (Identity BuildType), c (Identity PackageName), c (Identity Version), c (List FSep FilePathNT String), c (List FSep CompatFilePath String), c (List FSep (Identity (SymbolicPath PackageDir LicenseFile)) (SymbolicPath PackageDir LicenseFile)), c (List FSep TestedWith (CompilerFlavor, VersionRange)), c (List VCat FilePathNT String), c FilePathNT, c CompatLicenseFile, c CompatFilePath, c SpecLicense, c SpecVersion) => g PackageDescription PackageDescription
+ Distribution.PackageDescription.FieldGrammar: packageDescriptionFieldGrammar :: (FieldGrammar c g, Applicative (g PackageDescription), Applicative (g PackageIdentifier), c (Identity BuildType), c (Identity PackageName), c (Identity Version), forall from to. c (List FSep (RelativePathNT from to) (RelativePath from to)), forall from to. c (List VCat (RelativePathNT from to) (RelativePath from to)), c (List FSep TestedWith (CompilerFlavor, VersionRange)), c CompatLicenseFile, c CompatDataDir) => g PackageDescription PackageDescription
- Distribution.PackageDescription.FieldGrammar: testStanzaMainIs :: Lens' TestSuiteStanza (Maybe FilePath)
+ Distribution.PackageDescription.FieldGrammar: testStanzaMainIs :: Lens' TestSuiteStanza (Maybe (RelativePath Source File))
- Distribution.PackageDescription.FieldGrammar: testSuiteFieldGrammar :: (FieldGrammar c g, Applicative (g TestSuiteStanza), Applicative (g BuildInfo), c (Identity ModuleName), c (Identity TestType), c (List CommaFSep (Identity ExeDependency) ExeDependency), c (List CommaFSep (Identity LegacyExeDependency) LegacyExeDependency), c (List CommaFSep (Identity PkgconfigDependency) PkgconfigDependency), c (List CommaFSep Token String), c (List CommaVCat (Identity Dependency) Dependency), c (List CommaVCat (Identity Mixin) Mixin), c (List FSep (MQuoted Extension) Extension), c (List FSep (MQuoted Language) Language), c (List FSep FilePathNT String), c (List FSep Token String), c (List NoCommaFSep Token' String), c (List VCat (MQuoted ModuleName) ModuleName), c (List VCat FilePathNT String), c (List FSep (Identity (SymbolicPath PackageDir SourceDir)) (SymbolicPath PackageDir SourceDir)), c (List VCat Token String), c (MQuoted Language)) => g TestSuiteStanza TestSuiteStanza
+ Distribution.PackageDescription.FieldGrammar: testSuiteFieldGrammar :: (FieldGrammar c g, Applicative (g TestSuiteStanza), Applicative (g BuildInfo), c (Identity ModuleName), c (Identity TestType), c (List CommaFSep (Identity ExeDependency) ExeDependency), c (List CommaFSep (Identity LegacyExeDependency) LegacyExeDependency), c (List CommaFSep (Identity PkgconfigDependency) PkgconfigDependency), c (List CommaFSep Token String), c (List CommaVCat (Identity Dependency) Dependency), c (List CommaVCat (Identity Mixin) Mixin), c (List FSep (MQuoted Extension) Extension), c (List FSep (MQuoted Language) Language), c (List FSep Token String), c (List NoCommaFSep Token' String), c (List VCat (MQuoted ModuleName) ModuleName), forall from to. c (List FSep (SymbolicPathNT from to) (SymbolicPath from to)), forall from to. c (List FSep (RelativePathNT from to) (RelativePath from to)), forall from to. c (List VCat (SymbolicPathNT from to) (SymbolicPath from to)), forall from to. c (RelativePathNT from to), c (List VCat Token String), c (MQuoted Language)) => g TestSuiteStanza TestSuiteStanza
- Distribution.Types.BenchmarkInterface: BenchmarkExeV10 :: Version -> FilePath -> BenchmarkInterface
+ Distribution.Types.BenchmarkInterface: BenchmarkExeV10 :: Version -> RelativePath Source File -> BenchmarkInterface
- Distribution.Types.BuildInfo: BuildInfo :: Bool -> [LegacyExeDependency] -> [ExeDependency] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [PkgconfigDependency] -> [String] -> [String] -> [FilePath] -> [FilePath] -> [FilePath] -> [FilePath] -> [FilePath] -> [SymbolicPath PackageDir SourceDir] -> [ModuleName] -> [ModuleName] -> [ModuleName] -> Maybe Language -> [Language] -> [Extension] -> [Extension] -> [Extension] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [FilePath] -> [FilePath] -> [FilePath] -> [FilePath] -> PerCompilerFlavor [String] -> PerCompilerFlavor [String] -> PerCompilerFlavor [String] -> PerCompilerFlavor [String] -> [(String, String)] -> [Dependency] -> [Mixin] -> BuildInfo
+ Distribution.Types.BuildInfo: BuildInfo :: Bool -> [LegacyExeDependency] -> [ExeDependency] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [PkgconfigDependency] -> [RelativePath Framework File] -> [SymbolicPath Pkg (Dir Framework)] -> [SymbolicPath Pkg File] -> [SymbolicPath Pkg File] -> [SymbolicPath Pkg File] -> [SymbolicPath Pkg File] -> [SymbolicPath Pkg File] -> [SymbolicPath Pkg (Dir Source)] -> [ModuleName] -> [ModuleName] -> [ModuleName] -> Maybe Language -> [Language] -> [Extension] -> [Extension] -> [Extension] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [SymbolicPath Pkg (Dir Lib)] -> [SymbolicPath Pkg (Dir Lib)] -> [SymbolicPath Pkg (Dir Include)] -> [SymbolicPath Include File] -> [RelativePath Include File] -> [RelativePath Include File] -> PerCompilerFlavor [String] -> PerCompilerFlavor [String] -> PerCompilerFlavor [String] -> PerCompilerFlavor [String] -> PerCompilerFlavor [String] -> [(String, String)] -> [Dependency] -> [Mixin] -> BuildInfo
- Distribution.Types.BuildInfo: [asmSources] :: BuildInfo -> [FilePath]
+ Distribution.Types.BuildInfo: [asmSources] :: BuildInfo -> [SymbolicPath Pkg File]
- Distribution.Types.BuildInfo: [autogenIncludes] :: BuildInfo -> [FilePath]
+ Distribution.Types.BuildInfo: [autogenIncludes] :: BuildInfo -> [RelativePath Include File]
- Distribution.Types.BuildInfo: [cSources] :: BuildInfo -> [FilePath]
+ Distribution.Types.BuildInfo: [cSources] :: BuildInfo -> [SymbolicPath Pkg File]
- Distribution.Types.BuildInfo: [cmmSources] :: BuildInfo -> [FilePath]
+ Distribution.Types.BuildInfo: [cmmSources] :: BuildInfo -> [SymbolicPath Pkg File]
- Distribution.Types.BuildInfo: [cxxSources] :: BuildInfo -> [FilePath]
+ Distribution.Types.BuildInfo: [cxxSources] :: BuildInfo -> [SymbolicPath Pkg File]
- Distribution.Types.BuildInfo: [extraFrameworkDirs] :: BuildInfo -> [String]
+ Distribution.Types.BuildInfo: [extraFrameworkDirs] :: BuildInfo -> [SymbolicPath Pkg (Dir Framework)]
- Distribution.Types.BuildInfo: [extraLibDirsStatic] :: BuildInfo -> [String]
+ Distribution.Types.BuildInfo: [extraLibDirsStatic] :: BuildInfo -> [SymbolicPath Pkg (Dir Lib)]
- Distribution.Types.BuildInfo: [extraLibDirs] :: BuildInfo -> [String]
+ Distribution.Types.BuildInfo: [extraLibDirs] :: BuildInfo -> [SymbolicPath Pkg (Dir Lib)]
- Distribution.Types.BuildInfo: [frameworks] :: BuildInfo -> [String]
+ Distribution.Types.BuildInfo: [frameworks] :: BuildInfo -> [RelativePath Framework File]
- Distribution.Types.BuildInfo: [hsSourceDirs] :: BuildInfo -> [SymbolicPath PackageDir SourceDir]
+ Distribution.Types.BuildInfo: [hsSourceDirs] :: BuildInfo -> [SymbolicPath Pkg (Dir Source)]
- Distribution.Types.BuildInfo: [includeDirs] :: BuildInfo -> [FilePath]
+ Distribution.Types.BuildInfo: [includeDirs] :: BuildInfo -> [SymbolicPath Pkg (Dir Include)]
- Distribution.Types.BuildInfo: [includes] :: BuildInfo -> [FilePath]
+ Distribution.Types.BuildInfo: [includes] :: BuildInfo -> [SymbolicPath Include File]
- Distribution.Types.BuildInfo: [installIncludes] :: BuildInfo -> [FilePath]
+ Distribution.Types.BuildInfo: [installIncludes] :: BuildInfo -> [RelativePath Include File]
- Distribution.Types.BuildInfo: [jsSources] :: BuildInfo -> [FilePath]
+ Distribution.Types.BuildInfo: [jsSources] :: BuildInfo -> [SymbolicPath Pkg File]
- Distribution.Types.BuildInfo.Lens: asmSources :: HasBuildInfo a => Lens' a [FilePath]
+ Distribution.Types.BuildInfo.Lens: asmSources :: HasBuildInfo a => Lens' a [SymbolicPath Pkg File]
- Distribution.Types.BuildInfo.Lens: autogenIncludes :: HasBuildInfo a => Lens' a [FilePath]
+ Distribution.Types.BuildInfo.Lens: autogenIncludes :: HasBuildInfo a => Lens' a [RelativePath Include File]
- Distribution.Types.BuildInfo.Lens: cSources :: HasBuildInfo a => Lens' a [FilePath]
+ Distribution.Types.BuildInfo.Lens: cSources :: HasBuildInfo a => Lens' a [SymbolicPath Pkg File]
- Distribution.Types.BuildInfo.Lens: cmmSources :: HasBuildInfo a => Lens' a [FilePath]
+ Distribution.Types.BuildInfo.Lens: cmmSources :: HasBuildInfo a => Lens' a [SymbolicPath Pkg File]
- Distribution.Types.BuildInfo.Lens: cxxSources :: HasBuildInfo a => Lens' a [FilePath]
+ Distribution.Types.BuildInfo.Lens: cxxSources :: HasBuildInfo a => Lens' a [SymbolicPath Pkg File]
- Distribution.Types.BuildInfo.Lens: extraFrameworkDirs :: HasBuildInfo a => Lens' a [String]
+ Distribution.Types.BuildInfo.Lens: extraFrameworkDirs :: HasBuildInfo a => Lens' a [SymbolicPath Pkg (Dir Framework)]
- Distribution.Types.BuildInfo.Lens: extraLibDirs :: HasBuildInfo a => Lens' a [String]
+ Distribution.Types.BuildInfo.Lens: extraLibDirs :: HasBuildInfo a => Lens' a [SymbolicPath Pkg (Dir Lib)]
- Distribution.Types.BuildInfo.Lens: extraLibDirsStatic :: HasBuildInfo a => Lens' a [String]
+ Distribution.Types.BuildInfo.Lens: extraLibDirsStatic :: HasBuildInfo a => Lens' a [SymbolicPath Pkg (Dir Lib)]
- Distribution.Types.BuildInfo.Lens: frameworks :: HasBuildInfo a => Lens' a [String]
+ Distribution.Types.BuildInfo.Lens: frameworks :: HasBuildInfo a => Lens' a [RelativePath Framework File]
- Distribution.Types.BuildInfo.Lens: hsSourceDirs :: HasBuildInfo a => Lens' a [SymbolicPath PackageDir SourceDir]
+ Distribution.Types.BuildInfo.Lens: hsSourceDirs :: HasBuildInfo a => Lens' a [SymbolicPath Pkg (Dir Source)]
- Distribution.Types.BuildInfo.Lens: includeDirs :: HasBuildInfo a => Lens' a [FilePath]
+ Distribution.Types.BuildInfo.Lens: includeDirs :: HasBuildInfo a => Lens' a [SymbolicPath Pkg (Dir Include)]
- Distribution.Types.BuildInfo.Lens: includes :: HasBuildInfo a => Lens' a [FilePath]
+ Distribution.Types.BuildInfo.Lens: includes :: HasBuildInfo a => Lens' a [SymbolicPath Include File]
- Distribution.Types.BuildInfo.Lens: installIncludes :: HasBuildInfo a => Lens' a [FilePath]
+ Distribution.Types.BuildInfo.Lens: installIncludes :: HasBuildInfo a => Lens' a [RelativePath Include File]
- Distribution.Types.BuildInfo.Lens: jsSources :: HasBuildInfo a => Lens' a [FilePath]
+ Distribution.Types.BuildInfo.Lens: jsSources :: HasBuildInfo a => Lens' a [SymbolicPath Pkg File]
- Distribution.Types.Executable: Executable :: UnqualComponentName -> FilePath -> ExecutableScope -> BuildInfo -> Executable
+ Distribution.Types.Executable: Executable :: UnqualComponentName -> RelativePath Source File -> ExecutableScope -> BuildInfo -> Executable
- Distribution.Types.Executable: [modulePath] :: Executable -> FilePath
+ Distribution.Types.Executable: [modulePath] :: Executable -> RelativePath Source File
- Distribution.Types.Executable.Lens: modulePath :: Lens' Executable String
+ Distribution.Types.Executable.Lens: modulePath :: Lens' Executable (RelativePath Source File)
- Distribution.Types.ForeignLib: ForeignLib :: UnqualComponentName -> ForeignLibType -> [ForeignLibOption] -> BuildInfo -> Maybe LibVersionInfo -> Maybe Version -> [FilePath] -> ForeignLib
+ Distribution.Types.ForeignLib: ForeignLib :: UnqualComponentName -> ForeignLibType -> [ForeignLibOption] -> BuildInfo -> Maybe LibVersionInfo -> Maybe Version -> [RelativePath Source File] -> ForeignLib
- Distribution.Types.ForeignLib: [foreignLibModDefFile] :: ForeignLib -> [FilePath]
+ Distribution.Types.ForeignLib: [foreignLibModDefFile] :: ForeignLib -> [RelativePath Source File]
- Distribution.Types.ForeignLib.Lens: foreignLibModDefFile :: Lens' ForeignLib [FilePath]
+ Distribution.Types.ForeignLib.Lens: foreignLibModDefFile :: Lens' ForeignLib [RelativePath Source File]
- Distribution.Types.PackageDescription: PackageDescription :: CabalSpecVersion -> PackageIdentifier -> Either License License -> [SymbolicPath PackageDir LicenseFile] -> !ShortText -> !ShortText -> !ShortText -> !ShortText -> [(CompilerFlavor, VersionRange)] -> !ShortText -> !ShortText -> !ShortText -> [SourceRepo] -> !ShortText -> !ShortText -> !ShortText -> [(String, String)] -> Maybe BuildType -> Maybe SetupBuildInfo -> Maybe Library -> [Library] -> [Executable] -> [ForeignLib] -> [TestSuite] -> [Benchmark] -> [FilePath] -> FilePath -> [FilePath] -> [FilePath] -> [FilePath] -> PackageDescription
+ Distribution.Types.PackageDescription: PackageDescription :: CabalSpecVersion -> PackageIdentifier -> Either License License -> [RelativePath Pkg File] -> !ShortText -> !ShortText -> !ShortText -> !ShortText -> [(CompilerFlavor, VersionRange)] -> !ShortText -> !ShortText -> !ShortText -> [SourceRepo] -> !ShortText -> !ShortText -> !ShortText -> [(String, String)] -> Maybe BuildType -> Maybe SetupBuildInfo -> Maybe Library -> [Library] -> [Executable] -> [ForeignLib] -> [TestSuite] -> [Benchmark] -> [RelativePath DataDir File] -> SymbolicPath Pkg (Dir DataDir) -> [RelativePath Pkg File] -> [RelativePath Pkg File] -> [RelativePath Pkg File] -> [RelativePath Pkg File] -> PackageDescription
- Distribution.Types.PackageDescription: [dataDir] :: PackageDescription -> FilePath
+ Distribution.Types.PackageDescription: [dataDir] :: PackageDescription -> SymbolicPath Pkg (Dir DataDir)
- Distribution.Types.PackageDescription: [dataFiles] :: PackageDescription -> [FilePath]
+ Distribution.Types.PackageDescription: [dataFiles] :: PackageDescription -> [RelativePath DataDir File]
- Distribution.Types.PackageDescription: [extraDocFiles] :: PackageDescription -> [FilePath]
+ Distribution.Types.PackageDescription: [extraDocFiles] :: PackageDescription -> [RelativePath Pkg File]
- Distribution.Types.PackageDescription: [extraSrcFiles] :: PackageDescription -> [FilePath]
+ Distribution.Types.PackageDescription: [extraSrcFiles] :: PackageDescription -> [RelativePath Pkg File]
- Distribution.Types.PackageDescription: [extraTmpFiles] :: PackageDescription -> [FilePath]
+ Distribution.Types.PackageDescription: [extraTmpFiles] :: PackageDescription -> [RelativePath Pkg File]
- Distribution.Types.PackageDescription: [licenseFiles] :: PackageDescription -> [SymbolicPath PackageDir LicenseFile]
+ Distribution.Types.PackageDescription: [licenseFiles] :: PackageDescription -> [RelativePath Pkg File]
- Distribution.Types.PackageDescription.Lens: dataDir :: Lens' PackageDescription FilePath
+ Distribution.Types.PackageDescription.Lens: dataDir :: Lens' PackageDescription (SymbolicPath Pkg (Dir DataDir))
- Distribution.Types.PackageDescription.Lens: dataFiles :: Lens' PackageDescription [FilePath]
+ Distribution.Types.PackageDescription.Lens: dataFiles :: Lens' PackageDescription [RelativePath DataDir File]
- Distribution.Types.PackageDescription.Lens: extraDocFiles :: Lens' PackageDescription [String]
+ Distribution.Types.PackageDescription.Lens: extraDocFiles :: Lens' PackageDescription [RelativePath Pkg File]
- Distribution.Types.PackageDescription.Lens: extraSrcFiles :: Lens' PackageDescription [String]
+ Distribution.Types.PackageDescription.Lens: extraSrcFiles :: Lens' PackageDescription [RelativePath Pkg File]
- Distribution.Types.PackageDescription.Lens: extraTmpFiles :: Lens' PackageDescription [String]
+ Distribution.Types.PackageDescription.Lens: extraTmpFiles :: Lens' PackageDescription [RelativePath Pkg File]
- Distribution.Types.PackageDescription.Lens: licenseFiles :: Lens' PackageDescription [SymbolicPath PackageDir LicenseFile]
+ Distribution.Types.PackageDescription.Lens: licenseFiles :: Lens' PackageDescription [RelativePath Pkg File]
- Distribution.Types.TestSuiteInterface: TestSuiteExeV10 :: Version -> FilePath -> TestSuiteInterface
+ Distribution.Types.TestSuiteInterface: TestSuiteExeV10 :: Version -> RelativePath Source File -> TestSuiteInterface
- Distribution.Utils.Path: getSymbolicPath :: SymbolicPath from to -> FilePath
+ Distribution.Utils.Path: getSymbolicPath :: SymbolicPathX allowAbsolute from to -> FilePath
- Distribution.Utils.Path: sameDirectory :: (IsDir from, IsDir to) => SymbolicPath from to
+ Distribution.Utils.Path: sameDirectory :: SymbolicPathX allowAbsolute from (Dir to)
- Distribution.Utils.Path: unsafeMakeSymbolicPath :: FilePath -> SymbolicPath from to
+ Distribution.Utils.Path: unsafeMakeSymbolicPath :: FilePath -> SymbolicPathX allowAbs from to

Files

Cabal-syntax.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name:          Cabal-syntax-version:       3.12.1.0+version:       3.14.0.0 copyright:     2003-2024, Cabal Development Team (see AUTHORS file) license:       BSD-3-Clause license-file:  LICENSE@@ -29,7 +29,7 @@    build-depends:     array      >= 0.4.0.1  && < 0.6,-    base       >= 4.11     && < 5,+    base       >= 4.13     && < 5,     binary     >= 0.7      && < 0.9,     bytestring >= 0.10.0.0 && < 0.13,     containers >= 0.5.0.0  && < 0.8,@@ -45,7 +45,13 @@     -- See also https://github.com/ekmett/transformers-compat/issues/35     transformers (>= 0.3      && < 0.4) || (>=0.4.1.0 && <0.7) -  ghc-options: -Wall -fno-ignore-asserts -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates+  ghc-options:+    -Wall+    -fno-ignore-asserts+    -fwarn-tabs+    -fwarn-incomplete-uni-patterns+    -fwarn-incomplete-record-updates+    -fno-warn-unticked-promoted-constructors    if impl(ghc >= 8.0)     ghc-options: -Wcompat -Wnoncanonical-monad-instances@@ -53,9 +59,6 @@   if impl(ghc >= 8.0) && impl(ghc < 8.8)     ghc-options: -Wnoncanonical-monadfail-instances -  if impl(ghc >= 8.10)-    ghc-options: -Wunused-packages-   build-tool-depends: alex:alex    exposed-modules:@@ -73,7 +76,6 @@     Distribution.Compat.Parsing     Distribution.Compat.Prelude     Distribution.Compat.Semigroup-    Distribution.Compat.Typeable     Distribution.Compiler     Distribution.FieldGrammar     Distribution.FieldGrammar.Class
ChangeLog.md view
@@ -1,1 +1,1 @@-Please see https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.12.1.0.md+Please see https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.14.0.0.md
src/Distribution/CabalSpecVersion.hs view
@@ -34,6 +34,7 @@   | CabalSpecV3_8   | -- 3.10: no changes     CabalSpecV3_12+  | CabalSpecV3_14   deriving (Eq, Ord, Show, Read, Enum, Bounded, Typeable, Data, Generic)  instance Binary CabalSpecVersion@@ -44,6 +45,7 @@ -- -- @since 3.0.0.0 showCabalSpecVersion :: CabalSpecVersion -> String+showCabalSpecVersion CabalSpecV3_14 = "3.14" showCabalSpecVersion CabalSpecV3_12 = "3.12" showCabalSpecVersion CabalSpecV3_8 = "3.8" showCabalSpecVersion CabalSpecV3_6 = "3.6"@@ -65,13 +67,14 @@ showCabalSpecVersion CabalSpecV1_0 = "1.0"  cabalSpecLatest :: CabalSpecVersion-cabalSpecLatest = CabalSpecV3_12+cabalSpecLatest = CabalSpecV3_14  -- | Parse 'CabalSpecVersion' from version digits. -- -- It may fail if for recent versions the version is not exact. cabalSpecFromVersionDigits :: [Int] -> Maybe CabalSpecVersion cabalSpecFromVersionDigits v+  | v == [3, 14] = Just CabalSpecV3_14   | v == [3, 12] = Just CabalSpecV3_12   | v == [3, 8] = Just CabalSpecV3_8   | v == [3, 6] = Just CabalSpecV3_6@@ -95,6 +98,7 @@  -- | @since 3.4.0.0 cabalSpecToVersionDigits :: CabalSpecVersion -> [Int]+cabalSpecToVersionDigits CabalSpecV3_14 = [3, 14] cabalSpecToVersionDigits CabalSpecV3_12 = [3, 12] cabalSpecToVersionDigits CabalSpecV3_8 = [3, 8] cabalSpecToVersionDigits CabalSpecV3_6 = [3, 6]
src/Distribution/Compat/Graph.hs view
@@ -148,24 +148,20 @@   g1 == g2 = graphMap g1 == graphMap g2  instance Foldable.Foldable Graph where+  elem x = Foldable.elem x . graphMap   fold = Foldable.fold . graphMap-  foldr f z = Foldable.foldr f z . graphMap   foldl f z = Foldable.foldl f z . graphMap-  foldMap f = Foldable.foldMap f . graphMap   foldl' f z = Foldable.foldl' f z . graphMap+  foldr f z = Foldable.foldr f z . graphMap   foldr' f z = Foldable.foldr' f z . graphMap-#ifdef MIN_VERSION_base-#if MIN_VERSION_base(4,8,0)+  foldMap f = Foldable.foldMap f . graphMap   length = Foldable.length . graphMap-  null   = Foldable.null   . graphMap-  toList = Foldable.toList . graphMap-  elem x = Foldable.elem x . graphMap   maximum = Foldable.maximum . graphMap   minimum = Foldable.minimum . graphMap-  sum     = Foldable.sum     . graphMap+  null = Foldable.null . graphMap   product = Foldable.product . graphMap-#endif-#endif+  sum = Foldable.sum . graphMap+  toList = Foldable.toList . graphMap  instance (NFData a, NFData (Key a)) => NFData (Graph a) where   rnf
src/Distribution/Compat/Newtype.hs view
@@ -14,15 +14,10 @@   , unpack'   ) where +import Data.Coerce (Coercible, coerce) import Data.Functor.Identity (Identity (..)) import Data.Monoid (Endo (..), Product (..), Sum (..)) -#if MIN_VERSION_base(4,7,0)-import Data.Coerce (coerce, Coercible)-#else-import Unsafe.Coerce (unsafeCoerce)-#endif- -- | The @FunctionalDependencies@ version of 'Newtype' type-class. -- -- Since Cabal-3.0 class arguments are in a different order than in @newtype@ package.@@ -40,22 +35,12 @@ {- FOURMOLU_DISABLE -} class Newtype o n | n -> o where   pack :: o -> n-#if MIN_VERSION_base(4,7,0)   default pack :: Coercible o n => o -> n   pack = coerce-#else-  default pack :: o -> n-  pack = unsafeCoerce-#endif    unpack :: n -> o-#if MIN_VERSION_base(4,7,0)   default unpack :: Coercible n o => n -> o   unpack = coerce-#else-  default unpack :: n -> o-  unpack = unsafeCoerce-#endif {- FOURMOLU_ENABLE -}  instance Newtype a (Identity a)
src/Distribution/Compat/NonEmptySet.hs view
@@ -87,12 +87,9 @@ instance F.Foldable NonEmptySet where   foldMap f (NES s) = F.foldMap f s   foldr f z (NES s) = F.foldr f z s--#if MIN_VERSION_base(4,8,0)-  toList         = toList-  null _         = False+  toList = toList+  null _ = False   length (NES s) = F.length s-#endif  ------------------------------------------------------------------------------- -- Constructors
src/Distribution/Compat/Prelude.hs view
@@ -4,14 +4,6 @@ {-# LANGUAGE Trustworthy #-} {-# LANGUAGE TypeOperators #-} -{- FOURMOLU_DISABLE -}-#ifdef MIN_VERSION_base-#define MINVER_base_411 MIN_VERSION_base(4,11,0)-#else-#define MINVER_base_411 (__GLASGOW_HASKELL__ >= 804)-#endif-{- FOURMOLU_ENABLE -}- -- | This module does two things: -- -- * Acts as a compatibility layer, like @base-compat@.@@ -194,11 +186,10 @@     ( mapM, mapM_, sequence, any, all, head, tail, last, init     -- partial functions     , read-#if MINVER_base_411+    , foldr1, foldl1     -- As of base 4.11.0.0 Prelude exports part of Semigroup(..).     -- Hide this so we instead rely on Distribution.Compat.Semigroup.     , Semigroup(..)-#endif     , Word     -- We hide them, as we import only some members     , Traversable, traverse, sequenceA@@ -243,11 +234,11 @@ import Data.Proxy (Proxy (..)) import Data.Set (Set) import Data.String (IsString (..))+import Data.Typeable (TypeRep, Typeable, typeRep) import Data.Void (Void, absurd, vacuous) import Data.Word (Word, Word16, Word32, Word64, Word8) import Distribution.Compat.Binary (Binary (..)) import Distribution.Compat.Semigroup (Semigroup (..), gmappend, gmempty)-import Distribution.Compat.Typeable (TypeRep, Typeable, typeRep) import GHC.Generics (Generic (..), K1 (unK1), M1 (unM1), U1 (U1), V1, (:*:) ((:*:)), (:+:) (L1, R1)) import System.Exit (ExitCode (..), exitFailure, exitSuccess, exitWith) import Text.Read (readMaybe)
− src/Distribution/Compat/Typeable.hs
@@ -1,19 +0,0 @@-{-# LANGUAGE CPP #-}-{-# LANGUAGE ScopedTypeVariables #-}--module Distribution.Compat.Typeable-  ( Typeable-  , TypeRep-  , typeRep-  ) where--#if MIN_VERSION_base(4,7,0)-import Data.Typeable (Typeable, TypeRep, typeRep)-#else-import Data.Typeable (Typeable, TypeRep, typeOf)-#endif--#if !MIN_VERSION_base(4,7,0)-typeRep :: forall a proxy. Typeable a => proxy a -> TypeRep-typeRep _ = typeOf (undefined :: a)-#endif
src/Distribution/FieldGrammar/Newtypes.hs view
@@ -1,6 +1,8 @@+{-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FunctionalDependencies #-}+{-# LANGUAGE InstanceSigs #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-}@@ -42,6 +44,8 @@   , Token' (..)   , MQuoted (..)   , FilePathNT (..)+  , SymbolicPathNT (..)+  , RelativePathNT (..)   ) where  import Distribution.Compat.Newtype@@ -53,6 +57,7 @@ import Distribution.License (License) import Distribution.Parsec import Distribution.Pretty+import Distribution.Utils.Path import Distribution.Version   ( LowerBound (..)   , Version@@ -276,6 +281,41 @@  instance Pretty FilePathNT where   pretty = showFilePath . unpack++-- | Newtype for 'SymbolicPath', with a different 'Parsec' instance+-- to disallow empty paths.+newtype SymbolicPathNT from to = SymbolicPathNT {getSymbolicPathNT :: SymbolicPath from to}++instance Newtype (SymbolicPath from to) (SymbolicPathNT from to)++instance Parsec (SymbolicPathNT from to) where+  parsec = do+    token <- parsecToken+    if null token+      then P.unexpected "empty FilePath"+      else return (SymbolicPathNT $ makeSymbolicPath token)++instance Pretty (SymbolicPathNT from to) where+  pretty = showFilePath . getSymbolicPath . getSymbolicPathNT++-- | Newtype for 'RelativePath', with a different 'Parsec' instance+-- to disallow empty paths but allow non-relative paths (which get rejected+-- later with a different error message, see 'Distribution.PackageDescription.Check.Paths.checkPath')+newtype RelativePathNT from to = RelativePathNT {getRelativePathNT :: RelativePath from to}++instance Newtype (RelativePath from to) (RelativePathNT from to)++-- NB: we don't reject non-relative paths here; we allow them here and reject+-- later (see 'Distribution.PackageDescription.Check.Paths.checkPath').+instance Parsec (RelativePathNT from to) where+  parsec = do+    token <- parsecToken+    if null token+      then P.unexpected "empty FilePath"+      else return (RelativePathNT $ unsafeMakeSymbolicPath token)++instance Pretty (RelativePathNT from to) where+  pretty = showFilePath . getSymbolicPath . getRelativePathNT  ------------------------------------------------------------------------------- -- SpecVersion
src/Distribution/Fields/ParseResult.hs view
@@ -18,23 +18,12 @@   , withoutWarnings   ) where +import Distribution.Compat.Prelude import Distribution.Parsec.Error (PError (..)) import Distribution.Parsec.Position (Position (..), zeroPos) import Distribution.Parsec.Warning (PWarnType (..), PWarning (..)) import Distribution.Version (Version)-import Prelude () --- liftA2 is not in base <4.10, hence we need to only import it explicitly when we're on >=4.10------ Additionally, since liftA2 will be exported from Prelude starting with ~4.18, we should hide--- it from Prelude and get it from Control.Applicative to be backwards compatible and avoid warnings-#if MIN_VERSION_base(4,10,0)-import           Distribution.Compat.Prelude hiding (Applicative(..))-import           Control.Applicative (Applicative (..))-#else-import           Distribution.Compat.Prelude-#endif- -- | A monad with failure and accumulating errors and warnings. newtype ParseResult a = PR   { unPR@@ -99,14 +88,6 @@       unPR y s1 failure $ \ !s2 _ ->         success s2 x'   {-# INLINE (<*) #-}--#if MIN_VERSION_base(4,10,0)-  liftA2 f x y = PR $ \ !s0 failure success ->-      unPR x s0 failure $ \ !s1 x' ->-      unPR y s1 failure $ \ !s2 y' ->-      success s2 (f x' y')-  {-# INLINE liftA2 #-}-#endif  instance Monad ParseResult where   return = pure
src/Distribution/PackageDescription/Configuration.hs view
@@ -58,7 +58,7 @@ import Distribution.Types.DependencyMap import Distribution.Types.PackageVersionConstraint import Distribution.Utils.Generic-import Distribution.Utils.Path+import Distribution.Utils.Path (sameDirectory) import Distribution.Version  import qualified Data.Map.Lazy as Map
src/Distribution/PackageDescription/FieldGrammar.hs view
@@ -1,13 +1,15 @@ {-# LANGUAGE ConstraintKinds #-}+{-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuantifiedConstraints #-}  -- | 'GenericPackageDescription' Field descriptions module Distribution.PackageDescription.FieldGrammar   ( -- * Package description     packageDescriptionFieldGrammar-  , CompatFilePath (..)+  , CompatDataDir (..)   , CompatLicenseFile (..)      -- * Library@@ -99,16 +101,11 @@      , c (Identity BuildType)      , c (Identity PackageName)      , c (Identity Version)-     , c (List FSep FilePathNT String)-     , c (List FSep CompatFilePath String)-     , c (List FSep (Identity (SymbolicPath PackageDir LicenseFile)) (SymbolicPath PackageDir LicenseFile))+     , forall from to. c (List FSep (RelativePathNT from to) (RelativePath from to))+     , forall from to. c (List VCat (RelativePathNT from to) (RelativePath from to))      , c (List FSep TestedWith (CompilerFlavor, VersionRange))-     , c (List VCat FilePathNT String)-     , c FilePathNT      , c CompatLicenseFile-     , c CompatFilePath-     , c SpecLicense-     , c SpecVersion+     , c CompatDataDir      )   => g PackageDescription PackageDescription packageDescriptionFieldGrammar =@@ -140,12 +137,14 @@     <*> pure [] -- test suites     <*> pure [] -- benchmarks     --  * Files-    <*> monoidalFieldAla "data-files" (alaList' VCat FilePathNT) L.dataFiles-    <*> optionalFieldDefAla "data-dir" CompatFilePath L.dataDir "."-      ^^^ fmap (\x -> if null x then "." else x) -- map empty directories to "."+    <*> monoidalFieldAla "data-files" (alaList' VCat RelativePathNT) L.dataFiles+    <*> optionalFieldDefAla "data-dir" CompatDataDir L.dataDir sameDirectory+      ^^^ fmap (\x -> if null (getSymbolicPath x) then sameDirectory else x) -- map empty directories to "."     <*> monoidalFieldAla "extra-source-files" formatExtraSourceFiles L.extraSrcFiles-    <*> monoidalFieldAla "extra-tmp-files" (alaList' VCat FilePathNT) L.extraTmpFiles-    <*> monoidalFieldAla "extra-doc-files" (alaList' VCat FilePathNT) L.extraDocFiles+    <*> monoidalFieldAla "extra-tmp-files" (alaList' VCat RelativePathNT) L.extraTmpFiles+    <*> monoidalFieldAla "extra-doc-files" formatExtraSourceFiles L.extraDocFiles+    <*> monoidalFieldAla "extra-files" formatExtraSourceFiles L.extraFiles+      ^^^ availableSince CabalSpecV3_14 []   where     packageIdentifierGrammar =       PackageIdentifier@@ -158,7 +157,7 @@         -- should we pretty print license-file if there's single license file         -- and license-files when more         <$> monoidalFieldAla "license-file" CompatLicenseFile L.licenseFiles-        <*> monoidalFieldAla "license-files" (alaList FSep) L.licenseFiles+        <*> monoidalFieldAla "license-files" (alaList' FSep RelativePathNT) L.licenseFiles           ^^^ hiddenField  -------------------------------------------------------------------------------@@ -178,12 +177,12 @@      , c (List CommaVCat (Identity ModuleReexport) ModuleReexport)      , c (List FSep (MQuoted Extension) Extension)      , c (List FSep (MQuoted Language) Language)-     , c (List FSep FilePathNT String)      , c (List FSep Token String)      , c (List NoCommaFSep Token' String)      , c (List VCat (MQuoted ModuleName) ModuleName)-     , c (List VCat FilePathNT String)-     , c (List FSep (Identity (SymbolicPath PackageDir SourceDir)) (SymbolicPath PackageDir SourceDir))+     , forall from to. c (List FSep (SymbolicPathNT from to) (SymbolicPath from to))+     , forall from to. c (List FSep (RelativePathNT from to) (RelativePath from to))+     , forall from to. c (List VCat (SymbolicPathNT from to) (SymbolicPath from to))      , c (List VCat Token String)      , c (MQuoted Language)      )@@ -228,12 +227,12 @@      , c (List FSep (Identity ForeignLibOption) ForeignLibOption)      , c (List FSep (MQuoted Extension) Extension)      , c (List FSep (MQuoted Language) Language)-     , c (List FSep FilePathNT String)      , c (List FSep Token String)-     , c (List FSep (Identity (SymbolicPath PackageDir SourceDir)) (SymbolicPath PackageDir SourceDir))+     , forall from to. c (List FSep (SymbolicPathNT from to) (SymbolicPath from to))+     , forall from to. c (List FSep (RelativePathNT from to) (RelativePath from to))+     , forall from to. c (List VCat (SymbolicPathNT from to) (SymbolicPath from to))      , c (List NoCommaFSep Token' String)      , c (List VCat (MQuoted ModuleName) ModuleName)-     , c (List VCat FilePathNT String)      , c (List VCat Token String)      , c (MQuoted Language)      )@@ -246,7 +245,7 @@     <*> blurFieldGrammar L.foreignLibBuildInfo buildInfoFieldGrammar     <*> optionalField "lib-version-info" L.foreignLibVersionInfo     <*> optionalField "lib-version-linux" L.foreignLibVersionLinux-    <*> monoidalFieldAla "mod-def-file" (alaList' FSep FilePathNT) L.foreignLibModDefFile+    <*> monoidalFieldAla "mod-def-file" (alaList' FSep RelativePathNT) L.foreignLibModDefFile {-# SPECIALIZE foreignLibFieldGrammar :: UnqualComponentName -> ParsecFieldGrammar' ForeignLib #-} {-# SPECIALIZE foreignLibFieldGrammar :: UnqualComponentName -> PrettyFieldGrammar' ForeignLib #-} @@ -266,12 +265,16 @@      , c (List CommaVCat (Identity Mixin) Mixin)      , c (List FSep (MQuoted Extension) Extension)      , c (List FSep (MQuoted Language) Language)-     , c (List FSep FilePathNT String)      , c (List FSep Token String)-     , c (List FSep (Identity (SymbolicPath PackageDir SourceDir)) (SymbolicPath PackageDir SourceDir))+     , forall from to. c (List FSep (SymbolicPathNT from to) (SymbolicPath from to))+     , forall from to. c (List FSep (RelativePathNT from to) (RelativePath from to))+     , forall from to. c (List FSep (SymbolicPathNT from to) (SymbolicPath from to))+     , forall from to. c (List FSep (RelativePathNT from to) (RelativePath from to))+     , forall from to. c (List VCat (SymbolicPathNT from to) (SymbolicPath from to))+     , forall from to. c (SymbolicPathNT from to)+     , forall from to. c (RelativePathNT from to)      , c (List NoCommaFSep Token' String)      , c (List VCat (MQuoted ModuleName) ModuleName)-     , c (List VCat FilePathNT String)      , c (List VCat Token String)      , c (MQuoted Language)      )@@ -280,7 +283,7 @@ executableFieldGrammar n =   Executable n     -- main-is is optional as conditional blocks don't have it-    <$> optionalFieldDefAla "main-is" FilePathNT L.modulePath ""+    <$> optionalFieldDefAla "main-is" RelativePathNT L.modulePath (modulePath mempty)     <*> optionalFieldDef "scope" L.exeScope ExecutablePublic       ^^^ availableSince CabalSpecV2_0 ExecutablePublic     <*> blurFieldGrammar L.buildInfo buildInfoFieldGrammar@@ -295,7 +298,7 @@ -- After validation it is converted into the proper 'TestSuite' type. data TestSuiteStanza = TestSuiteStanza   { _testStanzaTestType :: Maybe TestType-  , _testStanzaMainIs :: Maybe FilePath+  , _testStanzaMainIs :: Maybe (RelativePath Source File)   , _testStanzaTestModule :: Maybe ModuleName   , _testStanzaBuildInfo :: BuildInfo   , _testStanzaCodeGenerators :: [String]@@ -308,7 +311,7 @@ testStanzaTestType f s = fmap (\x -> s{_testStanzaTestType = x}) (f (_testStanzaTestType s)) {-# INLINE testStanzaTestType #-} -testStanzaMainIs :: Lens' TestSuiteStanza (Maybe FilePath)+testStanzaMainIs :: Lens' TestSuiteStanza (Maybe (RelativePath Source File)) testStanzaMainIs f s = fmap (\x -> s{_testStanzaMainIs = x}) (f (_testStanzaMainIs s)) {-# INLINE testStanzaMainIs #-} @@ -338,12 +341,13 @@      , c (List CommaVCat (Identity Mixin) Mixin)      , c (List FSep (MQuoted Extension) Extension)      , c (List FSep (MQuoted Language) Language)-     , c (List FSep FilePathNT String)      , c (List FSep Token String)      , c (List NoCommaFSep Token' String)      , c (List VCat (MQuoted ModuleName) ModuleName)-     , c (List VCat FilePathNT String)-     , c (List FSep (Identity (SymbolicPath PackageDir SourceDir)) (SymbolicPath PackageDir SourceDir))+     , forall from to. c (List FSep (SymbolicPathNT from to) (SymbolicPath from to))+     , forall from to. c (List FSep (RelativePathNT from to) (RelativePath from to))+     , forall from to. c (List VCat (SymbolicPathNT from to) (SymbolicPath from to))+     , forall from to. c (RelativePathNT from to)      , c (List VCat Token String)      , c (MQuoted Language)      )@@ -351,7 +355,7 @@ testSuiteFieldGrammar =   TestSuiteStanza     <$> optionalField "type" testStanzaTestType-    <*> optionalFieldAla "main-is" FilePathNT testStanzaMainIs+    <*> optionalFieldAla "main-is" RelativePathNT testStanzaMainIs     <*> optionalField "test-module" testStanzaTestModule     <*> blurFieldGrammar testStanzaBuildInfo buildInfoFieldGrammar     <*> monoidalFieldAla "code-generators" (alaList' CommaFSep Token) testStanzaCodeGenerators@@ -444,7 +448,7 @@ -- After validation it is converted into the proper 'Benchmark' type. data BenchmarkStanza = BenchmarkStanza   { _benchmarkStanzaBenchmarkType :: Maybe BenchmarkType-  , _benchmarkStanzaMainIs :: Maybe FilePath+  , _benchmarkStanzaMainIs :: Maybe (RelativePath Source File)   , _benchmarkStanzaBenchmarkModule :: Maybe ModuleName   , _benchmarkStanzaBuildInfo :: BuildInfo   }@@ -456,7 +460,7 @@ benchmarkStanzaBenchmarkType f s = fmap (\x -> s{_benchmarkStanzaBenchmarkType = x}) (f (_benchmarkStanzaBenchmarkType s)) {-# INLINE benchmarkStanzaBenchmarkType #-} -benchmarkStanzaMainIs :: Lens' BenchmarkStanza (Maybe FilePath)+benchmarkStanzaMainIs :: Lens' BenchmarkStanza (Maybe (RelativePath Source File)) benchmarkStanzaMainIs f s = fmap (\x -> s{_benchmarkStanzaMainIs = x}) (f (_benchmarkStanzaMainIs s)) {-# INLINE benchmarkStanzaMainIs #-} @@ -481,12 +485,13 @@      , c (List CommaVCat (Identity Mixin) Mixin)      , c (List FSep (MQuoted Extension) Extension)      , c (List FSep (MQuoted Language) Language)-     , c (List FSep FilePathNT String)      , c (List FSep Token String)      , c (List NoCommaFSep Token' String)      , c (List VCat (MQuoted ModuleName) ModuleName)-     , c (List VCat FilePathNT String)-     , c (List FSep (Identity (SymbolicPath PackageDir SourceDir)) (SymbolicPath PackageDir SourceDir))+     , forall from to. c (List FSep (SymbolicPathNT from to) (SymbolicPath from to))+     , forall from to. c (List FSep (RelativePathNT from to) (RelativePath from to))+     , forall from to. c (List VCat (SymbolicPathNT from to) (SymbolicPath from to))+     , forall from to. c (RelativePathNT from to)      , c (List VCat Token String)      , c (MQuoted Language)      )@@ -494,7 +499,7 @@ benchmarkFieldGrammar =   BenchmarkStanza     <$> optionalField "type" benchmarkStanzaBenchmarkType-    <*> optionalFieldAla "main-is" FilePathNT benchmarkStanzaMainIs+    <*> optionalFieldAla "main-is" RelativePathNT benchmarkStanzaMainIs     <*> optionalField "benchmark-module" benchmarkStanzaBenchmarkModule     <*> blurFieldGrammar benchmarkStanzaBuildInfo buildInfoFieldGrammar @@ -561,8 +566,11 @@     }   where     (ty, ma, mo) = case benchmarkInterface b of-      BenchmarkExeV10 ver "" -> (Just $ BenchmarkTypeExe ver, Nothing, Nothing)-      BenchmarkExeV10 ver ma' -> (Just $ BenchmarkTypeExe ver, Just ma', Nothing)+      BenchmarkExeV10 ver ma'+        | getSymbolicPath ma' == "" ->+            (Just $ BenchmarkTypeExe ver, Nothing, Nothing)+        | otherwise ->+            (Just $ BenchmarkTypeExe ver, Just ma', Nothing)       _ -> (Nothing, Nothing, Nothing)  -------------------------------------------------------------------------------@@ -579,12 +587,12 @@      , c (List CommaVCat (Identity Mixin) Mixin)      , c (List FSep (MQuoted Extension) Extension)      , c (List FSep (MQuoted Language) Language)-     , c (List FSep FilePathNT String)      , c (List FSep Token String)      , c (List NoCommaFSep Token' String)      , c (List VCat (MQuoted ModuleName) ModuleName)-     , c (List VCat FilePathNT String)-     , c (List FSep (Identity (SymbolicPath PackageDir SourceDir)) (SymbolicPath PackageDir SourceDir))+     , forall from to. c (List FSep (SymbolicPathNT from to) (SymbolicPath from to))+     , forall from to. c (List FSep (RelativePathNT from to) (RelativePath from to))+     , forall from to. c (List VCat (SymbolicPathNT from to) (SymbolicPath from to))      , c (List VCat Token String)      , c (MQuoted Language)      )@@ -617,16 +625,16 @@     <*> monoidalFieldAla "hsc2hs-options" (alaList' NoCommaFSep Token') L.hsc2hsOptions       ^^^ availableSince CabalSpecV3_6 []     <*> monoidalFieldAla "pkgconfig-depends" (alaList CommaFSep) L.pkgconfigDepends-    <*> monoidalFieldAla "frameworks" (alaList' FSep Token) L.frameworks-    <*> monoidalFieldAla "extra-framework-dirs" (alaList' FSep FilePathNT) L.extraFrameworkDirs-    <*> monoidalFieldAla "asm-sources" (alaList' VCat FilePathNT) L.asmSources+    <*> monoidalFieldAla "frameworks" (alaList' FSep RelativePathNT) L.frameworks+    <*> monoidalFieldAla "extra-framework-dirs" (alaList' FSep SymbolicPathNT) L.extraFrameworkDirs+    <*> monoidalFieldAla "asm-sources" (alaList' VCat SymbolicPathNT) L.asmSources       ^^^ availableSince CabalSpecV3_0 []-    <*> monoidalFieldAla "cmm-sources" (alaList' VCat FilePathNT) L.cmmSources+    <*> monoidalFieldAla "cmm-sources" (alaList' VCat SymbolicPathNT) L.cmmSources       ^^^ availableSince CabalSpecV3_0 []-    <*> monoidalFieldAla "c-sources" (alaList' VCat FilePathNT) L.cSources-    <*> monoidalFieldAla "cxx-sources" (alaList' VCat FilePathNT) L.cxxSources+    <*> monoidalFieldAla "c-sources" (alaList' VCat SymbolicPathNT) L.cSources+    <*> monoidalFieldAla "cxx-sources" (alaList' VCat SymbolicPathNT) L.cxxSources       ^^^ availableSince CabalSpecV2_2 []-    <*> monoidalFieldAla "js-sources" (alaList' VCat FilePathNT) L.jsSources+    <*> monoidalFieldAla "js-sources" (alaList' VCat SymbolicPathNT) L.jsSources     <*> hsSourceDirsGrammar     <*> monoidalFieldAla "other-modules" formatOtherModules L.otherModules     <*> monoidalFieldAla "virtual-modules" (alaList' VCat MQuoted) L.virtualModules@@ -656,17 +664,18 @@     <*> monoidalFieldAla "extra-library-flavours" (alaList' VCat Token) L.extraLibFlavours     <*> monoidalFieldAla "extra-dynamic-library-flavours" (alaList' VCat Token) L.extraDynLibFlavours       ^^^ availableSince CabalSpecV3_0 []-    <*> monoidalFieldAla "extra-lib-dirs" (alaList' FSep FilePathNT) L.extraLibDirs-    <*> monoidalFieldAla "extra-lib-dirs-static" (alaList' FSep FilePathNT) L.extraLibDirsStatic+    <*> monoidalFieldAla "extra-lib-dirs" (alaList' FSep SymbolicPathNT) L.extraLibDirs+    <*> monoidalFieldAla "extra-lib-dirs-static" (alaList' FSep SymbolicPathNT) L.extraLibDirsStatic       ^^^ availableSince CabalSpecV3_8 []-    <*> monoidalFieldAla "include-dirs" (alaList' FSep FilePathNT) L.includeDirs-    <*> monoidalFieldAla "includes" (alaList' FSep FilePathNT) L.includes-    <*> monoidalFieldAla "autogen-includes" (alaList' FSep FilePathNT) L.autogenIncludes+    <*> monoidalFieldAla "include-dirs" (alaList' FSep SymbolicPathNT) L.includeDirs+    <*> monoidalFieldAla "includes" (alaList' FSep SymbolicPathNT) L.includes+    <*> monoidalFieldAla "autogen-includes" (alaList' FSep RelativePathNT) L.autogenIncludes       ^^^ availableSince CabalSpecV3_0 []-    <*> monoidalFieldAla "install-includes" (alaList' FSep FilePathNT) L.installIncludes+    <*> monoidalFieldAla "install-includes" (alaList' FSep RelativePathNT) L.installIncludes     <*> optionsFieldGrammar     <*> profOptionsFieldGrammar     <*> sharedOptionsFieldGrammar+    <*> profSharedOptionsFieldGrammar     <*> pure mempty -- static-options ???     <*> prefixedFields "x-" L.customFieldsBI     <*> monoidalFieldAla "build-depends" formatDependencyList L.targetBuildDepends@@ -678,19 +687,19 @@ hsSourceDirsGrammar   :: ( FieldGrammar c g      , Applicative (g BuildInfo)-     , c (List FSep (Identity (SymbolicPath PackageDir SourceDir)) (SymbolicPath PackageDir SourceDir))+     , forall from to. c (List FSep (SymbolicPathNT from to) (SymbolicPath from to))      )-  => g BuildInfo [SymbolicPath PackageDir SourceDir]+  => g BuildInfo [SymbolicPath Pkg (Dir Source)] hsSourceDirsGrammar =   (++)     <$> monoidalFieldAla "hs-source-dirs" formatHsSourceDirs L.hsSourceDirs-    <*> monoidalFieldAla "hs-source-dir" (alaList FSep) wrongLens+    <*> monoidalFieldAla "hs-source-dir" (alaList' FSep SymbolicPathNT) wrongLens       --- https://github.com/haskell/cabal/commit/49e3cdae3bdf21b017ccd42e66670ca402e22b44       ^^^ deprecatedSince CabalSpecV1_2 "Please use 'hs-source-dirs'"       ^^^ removedIn CabalSpecV3_0 "Please use 'hs-source-dirs' field."   where     -- TODO: make pretty printer aware of CabalSpecVersion-    wrongLens :: Functor f => LensLike' f BuildInfo [SymbolicPath PackageDir SourceDir]+    wrongLens :: Functor f => LensLike' f BuildInfo [SymbolicPath Pkg (Dir Source)]     wrongLens f bi = (\fps -> set L.hsSourceDirs fps bi) <$> f []  optionsFieldGrammar@@ -732,6 +741,19 @@     extract :: CompilerFlavor -> ALens' BuildInfo [String]     extract flavor = L.sharedOptions . lookupLens flavor +profSharedOptionsFieldGrammar+  :: (FieldGrammar c g, Applicative (g BuildInfo), c (List NoCommaFSep Token' String))+  => g BuildInfo (PerCompilerFlavor [String])+profSharedOptionsFieldGrammar =+  PerCompilerFlavor+    <$> monoidalFieldAla "ghc-prof-shared-options" (alaList' NoCommaFSep Token') (extract GHC)+      ^^^ availableSince CabalSpecV3_14 []+    <*> monoidalFieldAla "ghcjs-prof-shared-options" (alaList' NoCommaFSep Token') (extract GHCJS)+      ^^^ availableSince CabalSpecV3_14 []+  where+    extract :: CompilerFlavor -> ALens' BuildInfo [String]+    extract flavor = L.profSharedOptions . lookupLens flavor+ lookupLens :: (Functor f, Monoid v) => CompilerFlavor -> LensLike' f (PerCompilerFlavor v) v lookupLens k f p@(PerCompilerFlavor ghc ghcjs)   | k == GHC = (\n -> PerCompilerFlavor n ghcjs) <$> f ghc@@ -797,14 +819,14 @@ formatMixinList :: [Mixin] -> List CommaVCat (Identity Mixin) Mixin formatMixinList = alaList CommaVCat -formatExtraSourceFiles :: [FilePath] -> List VCat FilePathNT FilePath-formatExtraSourceFiles = alaList' VCat FilePathNT+formatExtraSourceFiles :: [RelativePath Pkg File] -> List VCat (RelativePathNT Pkg File) (RelativePath Pkg File)+formatExtraSourceFiles = alaList' VCat RelativePathNT  formatExposedModules :: [ModuleName] -> List VCat (MQuoted ModuleName) ModuleName formatExposedModules = alaList' VCat MQuoted -formatHsSourceDirs :: [SymbolicPath PackageDir SourceDir] -> List FSep (Identity (SymbolicPath PackageDir SourceDir)) (SymbolicPath PackageDir SourceDir)-formatHsSourceDirs = alaList FSep+formatHsSourceDirs :: [SymbolicPath Pkg (Dir Source)] -> List FSep (SymbolicPathNT Pkg (Dir Source)) (SymbolicPath Pkg (Dir Source))+formatHsSourceDirs = alaList' FSep SymbolicPathNT  formatOtherExtensions :: [Extension] -> List FSep (MQuoted Extension) Extension formatOtherExtensions = alaList' FSep MQuoted@@ -816,16 +838,10 @@ -- newtypes ------------------------------------------------------------------------------- --- | Compat FilePath accepts empty file path,--- but issues a warning.------ There are simply too many (~1200) package definition files------ @--- license-file: ""--- @+-- | Newtype for data directory (absolute or relative). ----- and+-- Accepts empty file path, but issues a warning;+-- there are simply too many (~1200) package definition files -- -- @ -- data-dir: ""@@ -833,25 +849,23 @@ -- -- across Hackage to outrule them completely. -- I suspect some of them are generated (e.g. formatted) by machine.-newtype CompatFilePath = CompatFilePath {getCompatFilePath :: FilePath} -- TODO: Change to use SymPath+newtype CompatDataDir = CompatDataDir {getCompatDataDir :: SymbolicPath Pkg (Dir DataDir)} -instance Newtype String CompatFilePath+instance Newtype (SymbolicPath Pkg (Dir DataDir)) CompatDataDir -instance Parsec CompatFilePath where+instance Parsec CompatDataDir where   parsec = do     token <- parsecToken-    if null token-      then do-        parsecWarning PWTEmptyFilePath "empty FilePath"-        return (CompatFilePath "")-      else return (CompatFilePath token)+    when (null token) $+      parsecWarning PWTEmptyFilePath "empty FilePath"+    return (CompatDataDir $ makeSymbolicPath token) -instance Pretty CompatFilePath where-  pretty = showToken . getCompatFilePath+instance Pretty CompatDataDir where+  pretty = showToken . getSymbolicPath . getCompatDataDir -newtype CompatLicenseFile = CompatLicenseFile {getCompatLicenseFile :: [SymbolicPath PackageDir LicenseFile]}+newtype CompatLicenseFile = CompatLicenseFile {getCompatLicenseFile :: [RelativePath Pkg File]} -instance Newtype [SymbolicPath PackageDir LicenseFile] CompatLicenseFile+instance Newtype [RelativePath Pkg File] CompatLicenseFile  -- TODO instance Parsec CompatLicenseFile where
src/Distribution/PackageDescription/Parsec.hs view
@@ -761,6 +761,10 @@       parseFailure zeroPos $         "Since cabal-version: 1.24 specifying custom-setup section is mandatory" +  when (buildType pd == Hooks && isNothing (setupBuildInfo pd)) $+    parseFailure zeroPos $+      "Packages with build-type: Hooks require a custom-setup stanza"+ ------------------------------------------------------------------------------- -- Post processing of internal dependencies -------------------------------------------------------------------------------@@ -988,7 +992,7 @@ -- RFC5234 ABNF): -- -- @--- newstyle-spec-version-decl = "cabal-version" *WS ":" *WS newstyle-pec-version *WS+-- newstyle-spec-version-decl = "cabal-version" *WS ":" *WS newstyle-spec-version *WS -- -- spec-version               = NUM "." NUM [ "." NUM ] --
src/Distribution/Parsec.hs view
@@ -145,10 +145,6 @@   (>>) = (*>)   {-# INLINE (>>) #-} -#if !(MIN_VERSION_base(4,13,0))-  fail = Fail.fail-#endif- instance MonadPlus ParsecParser where   mzero = empty   mplus = (<|>)
src/Distribution/SPDX/LicenseExceptionId.hs view
@@ -30,75 +30,80 @@ -- LicenseExceptionId ------------------------------------------------------------------------------- --- | SPDX License Exceptions identifiers list v3.23+-- | SPDX License Exceptions identifiers list v3.25 data LicenseExceptionId     = DS389_exception -- ^ @389-exception@, 389 Directory Server Exception-    | Asterisk_exception -- ^ @Asterisk-exception@, Asterisk exception, SPDX License List 3.23+    | Asterisk_exception -- ^ @Asterisk-exception@, Asterisk exception, SPDX License List 3.23, SPDX License List 3.25+    | Asterisk_linking_protocols_exception -- ^ @Asterisk-linking-protocols-exception@, Asterisk linking protocols exception, SPDX License List 3.25     | Autoconf_exception_2_0 -- ^ @Autoconf-exception-2.0@, Autoconf exception 2.0     | Autoconf_exception_3_0 -- ^ @Autoconf-exception-3.0@, Autoconf exception 3.0-    | Autoconf_exception_generic_3_0 -- ^ @Autoconf-exception-generic-3.0@, Autoconf generic exception for GPL-3.0, SPDX License List 3.23-    | Autoconf_exception_generic -- ^ @Autoconf-exception-generic@, Autoconf generic exception, SPDX License List 3.23-    | Autoconf_exception_macro -- ^ @Autoconf-exception-macro@, Autoconf macro exception, SPDX License List 3.23-    | Bison_exception_1_24 -- ^ @Bison-exception-1.24@, Bison exception 1.24, SPDX License List 3.23+    | Autoconf_exception_generic_3_0 -- ^ @Autoconf-exception-generic-3.0@, Autoconf generic exception for GPL-3.0, SPDX License List 3.23, SPDX License List 3.25+    | Autoconf_exception_generic -- ^ @Autoconf-exception-generic@, Autoconf generic exception, SPDX License List 3.23, SPDX License List 3.25+    | Autoconf_exception_macro -- ^ @Autoconf-exception-macro@, Autoconf macro exception, SPDX License List 3.23, SPDX License List 3.25+    | Bison_exception_1_24 -- ^ @Bison-exception-1.24@, Bison exception 1.24, SPDX License List 3.23, SPDX License List 3.25     | Bison_exception_2_2 -- ^ @Bison-exception-2.2@, Bison exception 2.2     | Bootloader_exception -- ^ @Bootloader-exception@, Bootloader Distribution Exception     | Classpath_exception_2_0 -- ^ @Classpath-exception-2.0@, Classpath exception 2.0     | CLISP_exception_2_0 -- ^ @CLISP-exception-2.0@, CLISP exception 2.0-    | Cryptsetup_OpenSSL_exception -- ^ @cryptsetup-OpenSSL-exception@, cryptsetup OpenSSL exception, SPDX License List 3.23+    | Cryptsetup_OpenSSL_exception -- ^ @cryptsetup-OpenSSL-exception@, cryptsetup OpenSSL exception, SPDX License List 3.23, SPDX License List 3.25     | DigiRule_FOSS_exception -- ^ @DigiRule-FOSS-exception@, DigiRule FOSS License Exception     | ECos_exception_2_0 -- ^ @eCos-exception-2.0@, eCos exception 2.0+    | Erlang_otp_linking_exception -- ^ @erlang-otp-linking-exception@, Erlang/OTP Linking Exception, SPDX License List 3.25     | Fawkes_Runtime_exception -- ^ @Fawkes-Runtime-exception@, Fawkes Runtime Exception     | FLTK_exception -- ^ @FLTK-exception@, FLTK exception-    | Fmt_exception -- ^ @fmt-exception@, fmt exception, SPDX License List 3.23+    | Fmt_exception -- ^ @fmt-exception@, fmt exception, SPDX License List 3.23, SPDX License List 3.25     | Font_exception_2_0 -- ^ @Font-exception-2.0@, Font exception 2.0     | Freertos_exception_2_0 -- ^ @freertos-exception-2.0@, FreeRTOS Exception 2.0-    | GCC_exception_2_0_note -- ^ @GCC-exception-2.0-note@, GCC    Runtime Library exception 2.0 - note variant, SPDX License List 3.23+    | GCC_exception_2_0_note -- ^ @GCC-exception-2.0-note@, GCC    Runtime Library exception 2.0 - note variant, SPDX License List 3.23, SPDX License List 3.25     | GCC_exception_2_0 -- ^ @GCC-exception-2.0@, GCC Runtime Library exception 2.0     | GCC_exception_3_1 -- ^ @GCC-exception-3.1@, GCC Runtime Library exception 3.1-    | Gmsh_exception -- ^ @Gmsh-exception@, Gmsh exception>, SPDX License List 3.23-    | GNAT_exception -- ^ @GNAT-exception@, GNAT exception, SPDX License List 3.23-    | GNOME_examples_exception -- ^ @GNOME-examples-exception@, GNOME examples exception, SPDX License List 3.23-    | GNU_compiler_exception -- ^ @GNU-compiler-exception@, GNU Compiler Exception, SPDX License List 3.23+    | Gmsh_exception -- ^ @Gmsh-exception@, Gmsh exception>, SPDX License List 3.23, SPDX License List 3.25+    | GNAT_exception -- ^ @GNAT-exception@, GNAT exception, SPDX License List 3.23, SPDX License List 3.25+    | GNOME_examples_exception -- ^ @GNOME-examples-exception@, GNOME examples exception, SPDX License List 3.23, SPDX License List 3.25+    | GNU_compiler_exception -- ^ @GNU-compiler-exception@, GNU Compiler Exception, SPDX License List 3.23, SPDX License List 3.25     | Gnu_javamail_exception -- ^ @gnu-javamail-exception@, GNU JavaMail exception-    | GPL_3_0_interface_exception -- ^ @GPL-3.0-interface-exception@, GPL-3.0 Interface Exception, SPDX License List 3.23-    | GPL_3_0_linking_exception -- ^ @GPL-3.0-linking-exception@, GPL-3.0 Linking Exception, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | GPL_3_0_linking_source_exception -- ^ @GPL-3.0-linking-source-exception@, GPL-3.0 Linking Exception (with Corresponding Source), SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | GPL_CC_1_0 -- ^ @GPL-CC-1.0@, GPL Cooperation Commitment 1.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | GStreamer_exception_2005 -- ^ @GStreamer-exception-2005@, GStreamer Exception (2005), SPDX License List 3.23-    | GStreamer_exception_2008 -- ^ @GStreamer-exception-2008@, GStreamer Exception (2008), SPDX License List 3.23+    | GPL_3_0_interface_exception -- ^ @GPL-3.0-interface-exception@, GPL-3.0 Interface Exception, SPDX License List 3.23, SPDX License List 3.25+    | GPL_3_0_linking_exception -- ^ @GPL-3.0-linking-exception@, GPL-3.0 Linking Exception, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | GPL_3_0_linking_source_exception -- ^ @GPL-3.0-linking-source-exception@, GPL-3.0 Linking Exception (with Corresponding Source), SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | GPL_CC_1_0 -- ^ @GPL-CC-1.0@, GPL Cooperation Commitment 1.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | GStreamer_exception_2005 -- ^ @GStreamer-exception-2005@, GStreamer Exception (2005), SPDX License List 3.23, SPDX License List 3.25+    | GStreamer_exception_2008 -- ^ @GStreamer-exception-2008@, GStreamer Exception (2008), SPDX License List 3.23, SPDX License List 3.25     | I2p_gpl_java_exception -- ^ @i2p-gpl-java-exception@, i2p GPL+Java Exception-    | KiCad_libraries_exception -- ^ @KiCad-libraries-exception@, KiCad Libraries Exception, SPDX License List 3.23-    | LGPL_3_0_linking_exception -- ^ @LGPL-3.0-linking-exception@, LGPL-3.0 Linking Exception, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | Libpri_OpenH323_exception -- ^ @libpri-OpenH323-exception@, libpri OpenH323 exception, SPDX License List 3.23+    | KiCad_libraries_exception -- ^ @KiCad-libraries-exception@, KiCad Libraries Exception, SPDX License List 3.23, SPDX License List 3.25+    | LGPL_3_0_linking_exception -- ^ @LGPL-3.0-linking-exception@, LGPL-3.0 Linking Exception, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | Libpri_OpenH323_exception -- ^ @libpri-OpenH323-exception@, libpri OpenH323 exception, SPDX License List 3.23, SPDX License List 3.25     | Libtool_exception -- ^ @Libtool-exception@, Libtool Exception     | Linux_syscall_note -- ^ @Linux-syscall-note@, Linux Syscall Note-    | LLGPL -- ^ @LLGPL@, LLGPL Preamble, SPDX License List 3.23-    | LLVM_exception -- ^ @LLVM-exception@, LLVM Exception, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | LLGPL -- ^ @LLGPL@, LLGPL Preamble, SPDX License List 3.23, SPDX License List 3.25+    | LLVM_exception -- ^ @LLVM-exception@, LLVM Exception, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | LZMA_exception -- ^ @LZMA-exception@, LZMA exception     | Mif_exception -- ^ @mif-exception@, Macros and Inline Functions Exception     | Nokia_Qt_exception_1_1 -- ^ @Nokia-Qt-exception-1.1@, Nokia Qt LGPL exception 1.1, SPDX License List 3.0, SPDX License List 3.2-    | OCaml_LGPL_linking_exception -- ^ @OCaml-LGPL-linking-exception@, OCaml LGPL Linking Exception, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | OCaml_LGPL_linking_exception -- ^ @OCaml-LGPL-linking-exception@, OCaml LGPL Linking Exception, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | OCCT_exception_1_0 -- ^ @OCCT-exception-1.0@, Open CASCADE Exception 1.0-    | OpenJDK_assembly_exception_1_0 -- ^ @OpenJDK-assembly-exception-1.0@, OpenJDK Assembly exception 1.0, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | OpenJDK_assembly_exception_1_0 -- ^ @OpenJDK-assembly-exception-1.0@, OpenJDK Assembly exception 1.0, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | Openvpn_openssl_exception -- ^ @openvpn-openssl-exception@, OpenVPN OpenSSL Exception-    | PS_or_PDF_font_exception_20170817 -- ^ @PS-or-PDF-font-exception-20170817@, PS/PDF font exception (2017-08-17), SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | QPL_1_0_INRIA_2004_exception -- ^ @QPL-1.0-INRIA-2004-exception@, INRIA QPL 1.0 2004 variant exception, SPDX License List 3.23-    | Qt_GPL_exception_1_0 -- ^ @Qt-GPL-exception-1.0@, Qt GPL exception 1.0, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | Qt_LGPL_exception_1_1 -- ^ @Qt-LGPL-exception-1.1@, Qt LGPL exception 1.1, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | PCRE2_exception -- ^ @PCRE2-exception@, PCRE2 exception, SPDX License List 3.25+    | PS_or_PDF_font_exception_20170817 -- ^ @PS-or-PDF-font-exception-20170817@, PS/PDF font exception (2017-08-17), SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | QPL_1_0_INRIA_2004_exception -- ^ @QPL-1.0-INRIA-2004-exception@, INRIA QPL 1.0 2004 variant exception, SPDX License List 3.23, SPDX License List 3.25+    | Qt_GPL_exception_1_0 -- ^ @Qt-GPL-exception-1.0@, Qt GPL exception 1.0, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | Qt_LGPL_exception_1_1 -- ^ @Qt-LGPL-exception-1.1@, Qt LGPL exception 1.1, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | Qwt_exception_1_0 -- ^ @Qwt-exception-1.0@, Qwt exception 1.0-    | SANE_exception -- ^ @SANE-exception@, SANE Exception, SPDX License List 3.23-    | SHL_2_0 -- ^ @SHL-2.0@, Solderpad Hardware License v2.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | SHL_2_1 -- ^ @SHL-2.1@, Solderpad Hardware License v2.1, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | Stunnel_exception -- ^ @stunnel-exception@, stunnel Exception, SPDX License List 3.23-    | SWI_exception -- ^ @SWI-exception@, SWI exception, SPDX License List 3.23-    | Swift_exception -- ^ @Swift-exception@, Swift Exception, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | Texinfo_exception -- ^ @Texinfo-exception@, Texinfo exception, SPDX License List 3.23+    | Romic_exception -- ^ @romic-exception@, Romic Exception, SPDX License List 3.25+    | RRDtool_FLOSS_exception_2_0 -- ^ @RRDtool-FLOSS-exception-2.0@, RRDtool FLOSS exception 2.0, SPDX License List 3.25+    | SANE_exception -- ^ @SANE-exception@, SANE Exception, SPDX License List 3.23, SPDX License List 3.25+    | SHL_2_0 -- ^ @SHL-2.0@, Solderpad Hardware License v2.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | SHL_2_1 -- ^ @SHL-2.1@, Solderpad Hardware License v2.1, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | Stunnel_exception -- ^ @stunnel-exception@, stunnel Exception, SPDX License List 3.23, SPDX License List 3.25+    | SWI_exception -- ^ @SWI-exception@, SWI exception, SPDX License List 3.23, SPDX License List 3.25+    | Swift_exception -- ^ @Swift-exception@, Swift Exception, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | Texinfo_exception -- ^ @Texinfo-exception@, Texinfo exception, SPDX License List 3.23, SPDX License List 3.25     | U_boot_exception_2_0 -- ^ @u-boot-exception-2.0@, U-Boot exception 2.0-    | UBDL_exception -- ^ @UBDL-exception@, Unmodified Binary Distribution exception, SPDX License List 3.23-    | Universal_FOSS_exception_1_0 -- ^ @Universal-FOSS-exception-1.0@, Universal FOSS Exception, Version 1.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | Vsftpd_openssl_exception -- ^ @vsftpd-openssl-exception@, vsftpd OpenSSL exception, SPDX License List 3.23+    | UBDL_exception -- ^ @UBDL-exception@, Unmodified Binary Distribution exception, SPDX License List 3.23, SPDX License List 3.25+    | Universal_FOSS_exception_1_0 -- ^ @Universal-FOSS-exception-1.0@, Universal FOSS Exception, Version 1.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | Vsftpd_openssl_exception -- ^ @vsftpd-openssl-exception@, vsftpd OpenSSL exception, SPDX License List 3.23, SPDX License List 3.25     | WxWindows_exception_3_1 -- ^ @WxWindows-exception-3.1@, WxWindows Library Exception 3.1-    | X11vnc_openssl_exception -- ^ @x11vnc-openssl-exception@, x11vnc OpenSSL Exception, SPDX License List 3.23+    | X11vnc_openssl_exception -- ^ @x11vnc-openssl-exception@, x11vnc OpenSSL Exception, SPDX License List 3.23, SPDX License List 3.25   deriving (Eq, Ord, Enum, Bounded, Show, Read, Typeable, Data, Generic)  instance Binary LicenseExceptionId where@@ -134,6 +139,7 @@ licenseExceptionId :: LicenseExceptionId -> String licenseExceptionId DS389_exception = "389-exception" licenseExceptionId Asterisk_exception = "Asterisk-exception"+licenseExceptionId Asterisk_linking_protocols_exception = "Asterisk-linking-protocols-exception" licenseExceptionId Autoconf_exception_2_0 = "Autoconf-exception-2.0" licenseExceptionId Autoconf_exception_3_0 = "Autoconf-exception-3.0" licenseExceptionId Autoconf_exception_generic_3_0 = "Autoconf-exception-generic-3.0"@@ -147,6 +153,7 @@ licenseExceptionId Cryptsetup_OpenSSL_exception = "cryptsetup-OpenSSL-exception" licenseExceptionId DigiRule_FOSS_exception = "DigiRule-FOSS-exception" licenseExceptionId ECos_exception_2_0 = "eCos-exception-2.0"+licenseExceptionId Erlang_otp_linking_exception = "erlang-otp-linking-exception" licenseExceptionId Fawkes_Runtime_exception = "Fawkes-Runtime-exception" licenseExceptionId FLTK_exception = "FLTK-exception" licenseExceptionId Fmt_exception = "fmt-exception"@@ -181,11 +188,14 @@ licenseExceptionId OCCT_exception_1_0 = "OCCT-exception-1.0" licenseExceptionId OpenJDK_assembly_exception_1_0 = "OpenJDK-assembly-exception-1.0" licenseExceptionId Openvpn_openssl_exception = "openvpn-openssl-exception"+licenseExceptionId PCRE2_exception = "PCRE2-exception" licenseExceptionId PS_or_PDF_font_exception_20170817 = "PS-or-PDF-font-exception-20170817" licenseExceptionId QPL_1_0_INRIA_2004_exception = "QPL-1.0-INRIA-2004-exception" licenseExceptionId Qt_GPL_exception_1_0 = "Qt-GPL-exception-1.0" licenseExceptionId Qt_LGPL_exception_1_1 = "Qt-LGPL-exception-1.1" licenseExceptionId Qwt_exception_1_0 = "Qwt-exception-1.0"+licenseExceptionId Romic_exception = "romic-exception"+licenseExceptionId RRDtool_FLOSS_exception_2_0 = "RRDtool-FLOSS-exception-2.0" licenseExceptionId SANE_exception = "SANE-exception" licenseExceptionId SHL_2_0 = "SHL-2.0" licenseExceptionId SHL_2_1 = "SHL-2.1"@@ -204,6 +214,7 @@ licenseExceptionName :: LicenseExceptionId -> String licenseExceptionName DS389_exception = "389 Directory Server Exception" licenseExceptionName Asterisk_exception = "Asterisk exception"+licenseExceptionName Asterisk_linking_protocols_exception = "Asterisk linking protocols exception" licenseExceptionName Autoconf_exception_2_0 = "Autoconf exception 2.0" licenseExceptionName Autoconf_exception_3_0 = "Autoconf exception 3.0" licenseExceptionName Autoconf_exception_generic_3_0 = "Autoconf generic exception for GPL-3.0"@@ -217,6 +228,7 @@ licenseExceptionName Cryptsetup_OpenSSL_exception = "cryptsetup OpenSSL exception" licenseExceptionName DigiRule_FOSS_exception = "DigiRule FOSS License Exception" licenseExceptionName ECos_exception_2_0 = "eCos exception 2.0"+licenseExceptionName Erlang_otp_linking_exception = "Erlang/OTP Linking Exception" licenseExceptionName Fawkes_Runtime_exception = "Fawkes Runtime Exception" licenseExceptionName FLTK_exception = "FLTK exception" licenseExceptionName Fmt_exception = "fmt exception"@@ -251,11 +263,14 @@ licenseExceptionName OCCT_exception_1_0 = "Open CASCADE Exception 1.0" licenseExceptionName OpenJDK_assembly_exception_1_0 = "OpenJDK Assembly exception 1.0" licenseExceptionName Openvpn_openssl_exception = "OpenVPN OpenSSL Exception"+licenseExceptionName PCRE2_exception = "PCRE2 exception" licenseExceptionName PS_or_PDF_font_exception_20170817 = "PS/PDF font exception (2017-08-17)" licenseExceptionName QPL_1_0_INRIA_2004_exception = "INRIA QPL 1.0 2004 variant exception" licenseExceptionName Qt_GPL_exception_1_0 = "Qt GPL exception 1.0" licenseExceptionName Qt_LGPL_exception_1_1 = "Qt LGPL exception 1.1" licenseExceptionName Qwt_exception_1_0 = "Qwt exception 1.0"+licenseExceptionName Romic_exception = "Romic Exception"+licenseExceptionName RRDtool_FLOSS_exception_2_0 = "RRDtool FLOSS exception 2.0" licenseExceptionName SANE_exception = "SANE Exception" licenseExceptionName SHL_2_0 = "Solderpad Hardware License v2.0" licenseExceptionName SHL_2_1 = "Solderpad Hardware License v2.1"@@ -394,6 +409,54 @@     , X11vnc_openssl_exception     ]     ++ bulkOfLicenses+licenseExceptionIdList LicenseListVersion_3_25 =+    [ Asterisk_exception+    , Asterisk_linking_protocols_exception+    , Autoconf_exception_generic_3_0+    , Autoconf_exception_generic+    , Autoconf_exception_macro+    , Bison_exception_1_24+    , Cryptsetup_OpenSSL_exception+    , Erlang_otp_linking_exception+    , Fmt_exception+    , GCC_exception_2_0_note+    , Gmsh_exception+    , GNAT_exception+    , GNOME_examples_exception+    , GNU_compiler_exception+    , GPL_3_0_interface_exception+    , GPL_3_0_linking_exception+    , GPL_3_0_linking_source_exception+    , GPL_CC_1_0+    , GStreamer_exception_2005+    , GStreamer_exception_2008+    , KiCad_libraries_exception+    , LGPL_3_0_linking_exception+    , Libpri_OpenH323_exception+    , LLGPL+    , LLVM_exception+    , OCaml_LGPL_linking_exception+    , OpenJDK_assembly_exception_1_0+    , PCRE2_exception+    , PS_or_PDF_font_exception_20170817+    , QPL_1_0_INRIA_2004_exception+    , Qt_GPL_exception_1_0+    , Qt_LGPL_exception_1_1+    , Romic_exception+    , RRDtool_FLOSS_exception_2_0+    , SANE_exception+    , SHL_2_0+    , SHL_2_1+    , Stunnel_exception+    , SWI_exception+    , Swift_exception+    , Texinfo_exception+    , UBDL_exception+    , Universal_FOSS_exception_1_0+    , Vsftpd_openssl_exception+    , X11vnc_openssl_exception+    ]+    ++ bulkOfLicenses  -- | Create a 'LicenseExceptionId' from a 'String'. mkLicenseExceptionId :: LicenseListVersion -> String -> Maybe LicenseExceptionId@@ -404,6 +467,7 @@ 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)) $@@ -432,6 +496,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]
src/Distribution/SPDX/LicenseId.hs view
@@ -33,16 +33,17 @@ -- LicenseId ------------------------------------------------------------------------------- --- | SPDX License identifiers list v3.23+-- | SPDX License identifiers list v3.25 data LicenseId     = NullBSD -- ^ @0BSD@, BSD Zero Clause License+    | X3D_Slicer_1_0 -- ^ @3D-Slicer-1.0@, 3D Slicer License v1.0, SPDX License List 3.25     | AAL -- ^ @AAL@, Attribution Assurance License     | Abstyles -- ^ @Abstyles@, Abstyles License-    | AdaCore_doc -- ^ @AdaCore-doc@, AdaCore Doc License, SPDX License List 3.23+    | AdaCore_doc -- ^ @AdaCore-doc@, AdaCore Doc License, SPDX License List 3.23, SPDX License List 3.25     | Adobe_2006 -- ^ @Adobe-2006@, Adobe Systems Incorporated Source Code License Agreement-    | Adobe_Display_PostScript -- ^ @Adobe-Display-PostScript@, Adobe Display PostScript License, SPDX License List 3.23+    | Adobe_Display_PostScript -- ^ @Adobe-Display-PostScript@, Adobe Display PostScript License, SPDX License List 3.23, SPDX License List 3.25     | Adobe_Glyph -- ^ @Adobe-Glyph@, Adobe Glyph List License-    | Adobe_Utopia -- ^ @Adobe-Utopia@, Adobe Utopia Font License, SPDX License List 3.23+    | Adobe_Utopia -- ^ @Adobe-Utopia@, Adobe Utopia Font License, SPDX License List 3.23, SPDX License List 3.25     | ADSL -- ^ @ADSL@, Amazon Digital Services License     | AFL_1_1 -- ^ @AFL-1.1@, Academic Free License v1.1     | AFL_1_2 -- ^ @AFL-1.2@, Academic Free License v1.2@@ -51,151 +52,155 @@     | AFL_3_0 -- ^ @AFL-3.0@, Academic Free License v3.0     | Afmparse -- ^ @Afmparse@, Afmparse License     | AGPL_1_0 -- ^ @AGPL-1.0@, Affero General Public License v1.0, SPDX License List 3.0-    | AGPL_1_0_only -- ^ @AGPL-1.0-only@, Affero General Public License v1.0 only, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | AGPL_1_0_or_later -- ^ @AGPL-1.0-or-later@, Affero General Public License v1.0 or later, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | AGPL_1_0_only -- ^ @AGPL-1.0-only@, Affero General Public License v1.0 only, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | AGPL_1_0_or_later -- ^ @AGPL-1.0-or-later@, Affero General Public License v1.0 or later, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | AGPL_3_0_only -- ^ @AGPL-3.0-only@, GNU Affero General Public License v3.0 only     | AGPL_3_0_or_later -- ^ @AGPL-3.0-or-later@, GNU Affero General Public License v3.0 or later     | Aladdin -- ^ @Aladdin@, Aladdin Free Public License+    | AMD_newlib -- ^ @AMD-newlib@, AMD newlib License, SPDX License List 3.25     | AMDPLPA -- ^ @AMDPLPA@, AMD's plpa_map.c License-    | AML_glslang -- ^ @AML-glslang@, AML glslang variant License, SPDX License List 3.23+    | AML_glslang -- ^ @AML-glslang@, AML glslang variant License, SPDX License List 3.23, SPDX License List 3.25     | AML -- ^ @AML@, Apple MIT License     | AMPAS -- ^ @AMPAS@, Academy of Motion Picture Arts and Sciences BSD-    | ANTLR_PD_fallback -- ^ @ANTLR-PD-fallback@, ANTLR Software Rights Notice with license fallback, SPDX License List 3.16, SPDX License List 3.23+    | ANTLR_PD_fallback -- ^ @ANTLR-PD-fallback@, ANTLR Software Rights Notice with license fallback, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | ANTLR_PD -- ^ @ANTLR-PD@, ANTLR Software Rights Notice+    | Any_OSI -- ^ @any-OSI@, Any OSI License, SPDX License List 3.25     | Apache_1_0 -- ^ @Apache-1.0@, Apache License 1.0     | Apache_1_1 -- ^ @Apache-1.1@, Apache License 1.1     | Apache_2_0 -- ^ @Apache-2.0@, Apache License 2.0     | APAFML -- ^ @APAFML@, Adobe Postscript AFM License     | APL_1_0 -- ^ @APL-1.0@, Adaptive Public License 1.0-    | App_s2p -- ^ @App-s2p@, App::s2p License, SPDX License List 3.16, SPDX License List 3.23+    | App_s2p -- ^ @App-s2p@, App::s2p License, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | APSL_1_0 -- ^ @APSL-1.0@, Apple Public Source License 1.0     | APSL_1_1 -- ^ @APSL-1.1@, Apple Public Source License 1.1     | APSL_1_2 -- ^ @APSL-1.2@, Apple Public Source License 1.2     | APSL_2_0 -- ^ @APSL-2.0@, Apple Public Source License 2.0-    | Arphic_1999 -- ^ @Arphic-1999@, Arphic Public License, SPDX License List 3.23+    | Arphic_1999 -- ^ @Arphic-1999@, Arphic Public License, SPDX License List 3.23, SPDX License List 3.25     | Artistic_1_0_cl8 -- ^ @Artistic-1.0-cl8@, Artistic License 1.0 w/clause 8     | Artistic_1_0_Perl -- ^ @Artistic-1.0-Perl@, Artistic License 1.0 (Perl)     | Artistic_1_0 -- ^ @Artistic-1.0@, Artistic License 1.0     | Artistic_2_0 -- ^ @Artistic-2.0@, Artistic License 2.0-    | ASWF_Digital_Assets_1_0 -- ^ @ASWF-Digital-Assets-1.0@, ASWF Digital Assets License version 1.0, SPDX License List 3.23-    | ASWF_Digital_Assets_1_1 -- ^ @ASWF-Digital-Assets-1.1@, ASWF Digital Assets License 1.1, SPDX License List 3.23-    | Baekmuk -- ^ @Baekmuk@, Baekmuk License, SPDX License List 3.23+    | ASWF_Digital_Assets_1_0 -- ^ @ASWF-Digital-Assets-1.0@, ASWF Digital Assets License version 1.0, SPDX License List 3.23, SPDX License List 3.25+    | ASWF_Digital_Assets_1_1 -- ^ @ASWF-Digital-Assets-1.1@, ASWF Digital Assets License 1.1, SPDX License List 3.23, SPDX License List 3.25+    | Baekmuk -- ^ @Baekmuk@, Baekmuk License, SPDX License List 3.23, SPDX License List 3.25     | Bahyph -- ^ @Bahyph@, Bahyph License     | Barr -- ^ @Barr@, Barr License-    | Bcrypt_Solar_Designer -- ^ @bcrypt-Solar-Designer@, bcrypt Solar Designer License, SPDX License List 3.23+    | Bcrypt_Solar_Designer -- ^ @bcrypt-Solar-Designer@, bcrypt Solar Designer License, SPDX License List 3.23, SPDX License List 3.25     | Beerware -- ^ @Beerware@, Beerware License-    | Bitstream_Charter -- ^ @Bitstream-Charter@, Bitstream Charter Font License, SPDX License List 3.23-    | Bitstream_Vera -- ^ @Bitstream-Vera@, Bitstream Vera Font License, SPDX License List 3.23+    | Bitstream_Charter -- ^ @Bitstream-Charter@, Bitstream Charter Font License, SPDX License List 3.23, SPDX License List 3.25+    | Bitstream_Vera -- ^ @Bitstream-Vera@, Bitstream Vera Font License, SPDX License List 3.23, SPDX License List 3.25     | BitTorrent_1_0 -- ^ @BitTorrent-1.0@, BitTorrent Open Source License v1.0     | BitTorrent_1_1 -- ^ @BitTorrent-1.1@, BitTorrent Open Source License v1.1-    | Blessing -- ^ @blessing@, SQLite Blessing, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | BlueOak_1_0_0 -- ^ @BlueOak-1.0.0@, Blue Oak Model License 1.0.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | Boehm_GC -- ^ @Boehm-GC@, Boehm-Demers-Weiser GC License, SPDX License List 3.23+    | Blessing -- ^ @blessing@, SQLite Blessing, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | BlueOak_1_0_0 -- ^ @BlueOak-1.0.0@, Blue Oak Model License 1.0.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | Boehm_GC -- ^ @Boehm-GC@, Boehm-Demers-Weiser GC License, SPDX License List 3.23, SPDX License List 3.25     | Borceux -- ^ @Borceux@, Borceux license-    | Brian_Gladman_2_Clause -- ^ @Brian-Gladman-2-Clause@, Brian Gladman 2-Clause License, SPDX License List 3.23-    | Brian_Gladman_3_Clause -- ^ @Brian-Gladman-3-Clause@, Brian Gladman 3-Clause License, SPDX License List 3.23+    | Brian_Gladman_2_Clause -- ^ @Brian-Gladman-2-Clause@, Brian Gladman 2-Clause License, SPDX License List 3.23, SPDX License List 3.25+    | Brian_Gladman_3_Clause -- ^ @Brian-Gladman-3-Clause@, Brian Gladman 3-Clause License, SPDX License List 3.23, SPDX License List 3.25     | BSD_1_Clause -- ^ @BSD-1-Clause@, BSD 1-Clause License     | BSD_2_Clause_FreeBSD -- ^ @BSD-2-Clause-FreeBSD@, BSD 2-Clause FreeBSD License, SPDX License List 3.0, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9     | BSD_2_Clause_NetBSD -- ^ @BSD-2-Clause-NetBSD@, BSD 2-Clause NetBSD License, SPDX License List 3.0, SPDX License List 3.2, SPDX License List 3.6-    | BSD_2_Clause_Darwin -- ^ @BSD-2-Clause-Darwin@, BSD 2-Clause - Ian Darwin variant, SPDX License List 3.23+    | BSD_2_Clause_Darwin -- ^ @BSD-2-Clause-Darwin@, BSD 2-Clause - Ian Darwin variant, SPDX License List 3.23, SPDX License List 3.25+    | BSD_2_Clause_first_lines -- ^ @BSD-2-Clause-first-lines@, BSD 2-Clause - first lines requirement, SPDX License List 3.25     | BSD_2_Clause_Patent -- ^ @BSD-2-Clause-Patent@, BSD-2-Clause Plus Patent License-    | BSD_2_Clause_Views -- ^ @BSD-2-Clause-Views@, BSD 2-Clause with views sentence, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | BSD_2_Clause_Views -- ^ @BSD-2-Clause-Views@, BSD 2-Clause with views sentence, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | BSD_2_Clause -- ^ @BSD-2-Clause@, BSD 2-Clause "Simplified" License-    | BSD_3_Clause_acpica -- ^ @BSD-3-Clause-acpica@, BSD 3-Clause acpica variant, SPDX License List 3.23+    | BSD_3_Clause_acpica -- ^ @BSD-3-Clause-acpica@, BSD 3-Clause acpica variant, SPDX License List 3.23, SPDX License List 3.25     | BSD_3_Clause_Attribution -- ^ @BSD-3-Clause-Attribution@, BSD with attribution     | BSD_3_Clause_Clear -- ^ @BSD-3-Clause-Clear@, BSD 3-Clause Clear License-    | BSD_3_Clause_flex -- ^ @BSD-3-Clause-flex@, BSD 3-Clause Flex variant, SPDX License List 3.23-    | BSD_3_Clause_HP -- ^ @BSD-3-Clause-HP@, Hewlett-Packard BSD variant license, SPDX License List 3.23+    | BSD_3_Clause_flex -- ^ @BSD-3-Clause-flex@, BSD 3-Clause Flex variant, SPDX License List 3.23, SPDX License List 3.25+    | BSD_3_Clause_HP -- ^ @BSD-3-Clause-HP@, Hewlett-Packard BSD variant license, SPDX License List 3.23, SPDX License List 3.25     | BSD_3_Clause_LBNL -- ^ @BSD-3-Clause-LBNL@, Lawrence Berkeley National Labs BSD variant license-    | BSD_3_Clause_Modification -- ^ @BSD-3-Clause-Modification@, BSD 3-Clause Modification, SPDX License List 3.16, SPDX License List 3.23-    | BSD_3_Clause_No_Military_License -- ^ @BSD-3-Clause-No-Military-License@, BSD 3-Clause No Military License, SPDX License List 3.16, SPDX License List 3.23+    | BSD_3_Clause_Modification -- ^ @BSD-3-Clause-Modification@, BSD 3-Clause Modification, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | BSD_3_Clause_No_Military_License -- ^ @BSD-3-Clause-No-Military-License@, BSD 3-Clause No Military License, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | BSD_3_Clause_No_Nuclear_License_2014 -- ^ @BSD-3-Clause-No-Nuclear-License-2014@, BSD 3-Clause No Nuclear License 2014     | BSD_3_Clause_No_Nuclear_License -- ^ @BSD-3-Clause-No-Nuclear-License@, BSD 3-Clause No Nuclear License     | BSD_3_Clause_No_Nuclear_Warranty -- ^ @BSD-3-Clause-No-Nuclear-Warranty@, BSD 3-Clause No Nuclear Warranty-    | BSD_3_Clause_Open_MPI -- ^ @BSD-3-Clause-Open-MPI@, BSD 3-Clause Open MPI variant, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | BSD_3_Clause_Sun -- ^ @BSD-3-Clause-Sun@, BSD 3-Clause Sun Microsystems, SPDX License List 3.23+    | BSD_3_Clause_Open_MPI -- ^ @BSD-3-Clause-Open-MPI@, BSD 3-Clause Open MPI variant, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | BSD_3_Clause_Sun -- ^ @BSD-3-Clause-Sun@, BSD 3-Clause Sun Microsystems, SPDX License List 3.23, SPDX License List 3.25     | BSD_3_Clause -- ^ @BSD-3-Clause@, BSD 3-Clause "New" or "Revised" License-    | BSD_4_Clause_Shortened -- ^ @BSD-4-Clause-Shortened@, BSD 4 Clause Shortened, SPDX License List 3.16, SPDX License List 3.23+    | BSD_4_Clause_Shortened -- ^ @BSD-4-Clause-Shortened@, BSD 4 Clause Shortened, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | BSD_4_Clause_UC -- ^ @BSD-4-Clause-UC@, BSD-4-Clause (University of California-Specific)     | BSD_4_Clause -- ^ @BSD-4-Clause@, BSD 4-Clause "Original" or "Old" License-    | BSD_4_3RENO -- ^ @BSD-4.3RENO@, BSD 4.3 RENO License, SPDX License List 3.23-    | BSD_4_3TAHOE -- ^ @BSD-4.3TAHOE@, BSD 4.3 TAHOE License, SPDX License List 3.23-    | BSD_Advertising_Acknowledgement -- ^ @BSD-Advertising-Acknowledgement@, BSD Advertising Acknowledgement License, SPDX License List 3.23-    | BSD_Attribution_HPND_disclaimer -- ^ @BSD-Attribution-HPND-disclaimer@, BSD with Attribution and HPND disclaimer, SPDX License List 3.23-    | BSD_Inferno_Nettverk -- ^ @BSD-Inferno-Nettverk@, BSD-Inferno-Nettverk, SPDX License List 3.23+    | BSD_4_3RENO -- ^ @BSD-4.3RENO@, BSD 4.3 RENO License, SPDX License List 3.23, SPDX License List 3.25+    | BSD_4_3TAHOE -- ^ @BSD-4.3TAHOE@, BSD 4.3 TAHOE License, SPDX License List 3.23, SPDX License List 3.25+    | BSD_Advertising_Acknowledgement -- ^ @BSD-Advertising-Acknowledgement@, BSD Advertising Acknowledgement License, SPDX License List 3.23, SPDX License List 3.25+    | BSD_Attribution_HPND_disclaimer -- ^ @BSD-Attribution-HPND-disclaimer@, BSD with Attribution and HPND disclaimer, SPDX License List 3.23, SPDX License List 3.25+    | BSD_Inferno_Nettverk -- ^ @BSD-Inferno-Nettverk@, BSD-Inferno-Nettverk, SPDX License List 3.23, SPDX License List 3.25     | BSD_Protection -- ^ @BSD-Protection@, BSD Protection License-    | BSD_Source_beginning_file -- ^ @BSD-Source-beginning-file@, BSD Source Code Attribution - beginning of file variant, SPDX License List 3.23+    | BSD_Source_beginning_file -- ^ @BSD-Source-beginning-file@, BSD Source Code Attribution - beginning of file variant, SPDX License List 3.23, SPDX License List 3.25     | BSD_Source_Code -- ^ @BSD-Source-Code@, BSD Source Code Attribution-    | BSD_Systemics_W3Works -- ^ @BSD-Systemics-W3Works@, Systemics W3Works BSD variant license, SPDX License List 3.23-    | BSD_Systemics -- ^ @BSD-Systemics@, Systemics BSD variant license, SPDX License List 3.23+    | BSD_Systemics_W3Works -- ^ @BSD-Systemics-W3Works@, Systemics W3Works BSD variant license, SPDX License List 3.23, SPDX License List 3.25+    | BSD_Systemics -- ^ @BSD-Systemics@, Systemics BSD variant license, SPDX License List 3.23, SPDX License List 3.25     | BSL_1_0 -- ^ @BSL-1.0@, Boost Software License 1.0     | Bzip2_1_0_5 -- ^ @bzip2-1.0.5@, bzip2 and libbzip2 License v1.0.5, SPDX License List 3.0, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10-    | BUSL_1_1 -- ^ @BUSL-1.1@, Business Source License 1.1, SPDX License List 3.16, SPDX License List 3.23+    | BUSL_1_1 -- ^ @BUSL-1.1@, Business Source License 1.1, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | Bzip2_1_0_6 -- ^ @bzip2-1.0.6@, bzip2 and libbzip2 License v1.0.6-    | C_UDA_1_0 -- ^ @C-UDA-1.0@, Computational Use of Data Agreement v1.0, SPDX License List 3.16, SPDX License List 3.23-    | CAL_1_0_Combined_Work_Exception -- ^ @CAL-1.0-Combined-Work-Exception@, Cryptographic Autonomy License 1.0 (Combined Work Exception), SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | CAL_1_0 -- ^ @CAL-1.0@, Cryptographic Autonomy License 1.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | Caldera_no_preamble -- ^ @Caldera-no-preamble@, Caldera License (without preamble), SPDX License List 3.23+    | C_UDA_1_0 -- ^ @C-UDA-1.0@, Computational Use of Data Agreement v1.0, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | CAL_1_0_Combined_Work_Exception -- ^ @CAL-1.0-Combined-Work-Exception@, Cryptographic Autonomy License 1.0 (Combined Work Exception), SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | CAL_1_0 -- ^ @CAL-1.0@, Cryptographic Autonomy License 1.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | Caldera_no_preamble -- ^ @Caldera-no-preamble@, Caldera License (without preamble), SPDX License List 3.23, SPDX License List 3.25     | Caldera -- ^ @Caldera@, Caldera License+    | Catharon -- ^ @Catharon@, Catharon License, SPDX License List 3.25     | CATOSL_1_1 -- ^ @CATOSL-1.1@, Computer Associates Trusted Open Source License 1.1     | CC_BY_1_0 -- ^ @CC-BY-1.0@, Creative Commons Attribution 1.0 Generic     | CC_BY_2_0 -- ^ @CC-BY-2.0@, Creative Commons Attribution 2.0 Generic-    | CC_BY_2_5_AU -- ^ @CC-BY-2.5-AU@, Creative Commons Attribution 2.5 Australia, SPDX License List 3.16, SPDX License List 3.23+    | CC_BY_2_5_AU -- ^ @CC-BY-2.5-AU@, Creative Commons Attribution 2.5 Australia, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | CC_BY_2_5 -- ^ @CC-BY-2.5@, Creative Commons Attribution 2.5 Generic-    | CC_BY_3_0_AT -- ^ @CC-BY-3.0-AT@, Creative Commons Attribution 3.0 Austria, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | CC_BY_3_0_AU -- ^ @CC-BY-3.0-AU@, Creative Commons Attribution 3.0 Australia, SPDX License List 3.23-    | CC_BY_3_0_DE -- ^ @CC-BY-3.0-DE@, Creative Commons Attribution 3.0 Germany, SPDX License List 3.16, SPDX License List 3.23-    | CC_BY_3_0_IGO -- ^ @CC-BY-3.0-IGO@, Creative Commons Attribution 3.0 IGO, SPDX License List 3.23-    | CC_BY_3_0_NL -- ^ @CC-BY-3.0-NL@, Creative Commons Attribution 3.0 Netherlands, SPDX License List 3.16, SPDX License List 3.23-    | CC_BY_3_0_US -- ^ @CC-BY-3.0-US@, Creative Commons Attribution 3.0 United States, SPDX License List 3.16, SPDX License List 3.23+    | CC_BY_3_0_AT -- ^ @CC-BY-3.0-AT@, Creative Commons Attribution 3.0 Austria, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | CC_BY_3_0_AU -- ^ @CC-BY-3.0-AU@, Creative Commons Attribution 3.0 Australia, SPDX License List 3.23, SPDX License List 3.25+    | CC_BY_3_0_DE -- ^ @CC-BY-3.0-DE@, Creative Commons Attribution 3.0 Germany, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | CC_BY_3_0_IGO -- ^ @CC-BY-3.0-IGO@, Creative Commons Attribution 3.0 IGO, SPDX License List 3.23, SPDX License List 3.25+    | CC_BY_3_0_NL -- ^ @CC-BY-3.0-NL@, Creative Commons Attribution 3.0 Netherlands, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | CC_BY_3_0_US -- ^ @CC-BY-3.0-US@, Creative Commons Attribution 3.0 United States, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | CC_BY_3_0 -- ^ @CC-BY-3.0@, Creative Commons Attribution 3.0 Unported     | CC_BY_4_0 -- ^ @CC-BY-4.0@, Creative Commons Attribution 4.0 International     | CC_BY_NC_1_0 -- ^ @CC-BY-NC-1.0@, Creative Commons Attribution Non Commercial 1.0 Generic     | CC_BY_NC_2_0 -- ^ @CC-BY-NC-2.0@, Creative Commons Attribution Non Commercial 2.0 Generic     | CC_BY_NC_2_5 -- ^ @CC-BY-NC-2.5@, Creative Commons Attribution Non Commercial 2.5 Generic-    | CC_BY_NC_3_0_DE -- ^ @CC-BY-NC-3.0-DE@, Creative Commons Attribution Non Commercial 3.0 Germany, SPDX License List 3.16, SPDX License List 3.23+    | CC_BY_NC_3_0_DE -- ^ @CC-BY-NC-3.0-DE@, Creative Commons Attribution Non Commercial 3.0 Germany, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | CC_BY_NC_3_0 -- ^ @CC-BY-NC-3.0@, Creative Commons Attribution Non Commercial 3.0 Unported     | CC_BY_NC_4_0 -- ^ @CC-BY-NC-4.0@, Creative Commons Attribution Non Commercial 4.0 International     | CC_BY_NC_ND_1_0 -- ^ @CC-BY-NC-ND-1.0@, Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic     | CC_BY_NC_ND_2_0 -- ^ @CC-BY-NC-ND-2.0@, Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic     | CC_BY_NC_ND_2_5 -- ^ @CC-BY-NC-ND-2.5@, Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic-    | CC_BY_NC_ND_3_0_DE -- ^ @CC-BY-NC-ND-3.0-DE@, Creative Commons Attribution Non Commercial No Derivatives 3.0 Germany, SPDX License List 3.16, SPDX License List 3.23-    | CC_BY_NC_ND_3_0_IGO -- ^ @CC-BY-NC-ND-3.0-IGO@, Creative Commons Attribution Non Commercial No Derivatives 3.0 IGO, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | CC_BY_NC_ND_3_0_DE -- ^ @CC-BY-NC-ND-3.0-DE@, Creative Commons Attribution Non Commercial No Derivatives 3.0 Germany, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | CC_BY_NC_ND_3_0_IGO -- ^ @CC-BY-NC-ND-3.0-IGO@, Creative Commons Attribution Non Commercial No Derivatives 3.0 IGO, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | CC_BY_NC_ND_3_0 -- ^ @CC-BY-NC-ND-3.0@, Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported     | CC_BY_NC_ND_4_0 -- ^ @CC-BY-NC-ND-4.0@, Creative Commons Attribution Non Commercial No Derivatives 4.0 International     | CC_BY_NC_SA_1_0 -- ^ @CC-BY-NC-SA-1.0@, Creative Commons Attribution Non Commercial Share Alike 1.0 Generic-    | CC_BY_NC_SA_2_0_DE -- ^ @CC-BY-NC-SA-2.0-DE@, Creative Commons Attribution Non Commercial Share Alike 2.0 Germany, SPDX License List 3.23-    | CC_BY_NC_SA_2_0_FR -- ^ @CC-BY-NC-SA-2.0-FR@, Creative Commons Attribution-NonCommercial-ShareAlike 2.0 France, SPDX License List 3.16, SPDX License List 3.23-    | CC_BY_NC_SA_2_0_UK -- ^ @CC-BY-NC-SA-2.0-UK@, Creative Commons Attribution Non Commercial Share Alike 2.0 England and Wales, SPDX License List 3.16, SPDX License List 3.23+    | CC_BY_NC_SA_2_0_DE -- ^ @CC-BY-NC-SA-2.0-DE@, Creative Commons Attribution Non Commercial Share Alike 2.0 Germany, SPDX License List 3.23, SPDX License List 3.25+    | CC_BY_NC_SA_2_0_FR -- ^ @CC-BY-NC-SA-2.0-FR@, Creative Commons Attribution-NonCommercial-ShareAlike 2.0 France, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | CC_BY_NC_SA_2_0_UK -- ^ @CC-BY-NC-SA-2.0-UK@, Creative Commons Attribution Non Commercial Share Alike 2.0 England and Wales, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | CC_BY_NC_SA_2_0 -- ^ @CC-BY-NC-SA-2.0@, Creative Commons Attribution Non Commercial Share Alike 2.0 Generic     | CC_BY_NC_SA_2_5 -- ^ @CC-BY-NC-SA-2.5@, Creative Commons Attribution Non Commercial Share Alike 2.5 Generic-    | CC_BY_NC_SA_3_0_DE -- ^ @CC-BY-NC-SA-3.0-DE@, Creative Commons Attribution Non Commercial Share Alike 3.0 Germany, SPDX License List 3.16, SPDX License List 3.23-    | CC_BY_NC_SA_3_0_IGO -- ^ @CC-BY-NC-SA-3.0-IGO@, Creative Commons Attribution Non Commercial Share Alike 3.0 IGO, SPDX License List 3.16, SPDX License List 3.23+    | CC_BY_NC_SA_3_0_DE -- ^ @CC-BY-NC-SA-3.0-DE@, Creative Commons Attribution Non Commercial Share Alike 3.0 Germany, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | CC_BY_NC_SA_3_0_IGO -- ^ @CC-BY-NC-SA-3.0-IGO@, Creative Commons Attribution Non Commercial Share Alike 3.0 IGO, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | CC_BY_NC_SA_3_0 -- ^ @CC-BY-NC-SA-3.0@, Creative Commons Attribution Non Commercial Share Alike 3.0 Unported     | CC_BY_NC_SA_4_0 -- ^ @CC-BY-NC-SA-4.0@, Creative Commons Attribution Non Commercial Share Alike 4.0 International     | CC_BY_ND_1_0 -- ^ @CC-BY-ND-1.0@, Creative Commons Attribution No Derivatives 1.0 Generic     | CC_BY_ND_2_0 -- ^ @CC-BY-ND-2.0@, Creative Commons Attribution No Derivatives 2.0 Generic     | CC_BY_ND_2_5 -- ^ @CC-BY-ND-2.5@, Creative Commons Attribution No Derivatives 2.5 Generic-    | CC_BY_ND_3_0_DE -- ^ @CC-BY-ND-3.0-DE@, Creative Commons Attribution No Derivatives 3.0 Germany, SPDX License List 3.16, SPDX License List 3.23+    | CC_BY_ND_3_0_DE -- ^ @CC-BY-ND-3.0-DE@, Creative Commons Attribution No Derivatives 3.0 Germany, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | CC_BY_ND_3_0 -- ^ @CC-BY-ND-3.0@, Creative Commons Attribution No Derivatives 3.0 Unported     | CC_BY_ND_4_0 -- ^ @CC-BY-ND-4.0@, Creative Commons Attribution No Derivatives 4.0 International     | CC_BY_SA_1_0 -- ^ @CC-BY-SA-1.0@, Creative Commons Attribution Share Alike 1.0 Generic-    | CC_BY_SA_2_0_UK -- ^ @CC-BY-SA-2.0-UK@, Creative Commons Attribution Share Alike 2.0 England and Wales, SPDX License List 3.16, SPDX License List 3.23+    | CC_BY_SA_2_0_UK -- ^ @CC-BY-SA-2.0-UK@, Creative Commons Attribution Share Alike 2.0 England and Wales, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | CC_BY_SA_2_0 -- ^ @CC-BY-SA-2.0@, Creative Commons Attribution Share Alike 2.0 Generic-    | CC_BY_SA_2_1_JP -- ^ @CC-BY-SA-2.1-JP@, Creative Commons Attribution Share Alike 2.1 Japan, SPDX License List 3.16, SPDX License List 3.23+    | CC_BY_SA_2_1_JP -- ^ @CC-BY-SA-2.1-JP@, Creative Commons Attribution Share Alike 2.1 Japan, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | CC_BY_SA_2_5 -- ^ @CC-BY-SA-2.5@, Creative Commons Attribution Share Alike 2.5 Generic-    | CC_BY_SA_3_0_AT -- ^ @CC-BY-SA-3.0-AT@, Creative Commons Attribution Share Alike 3.0 Austria, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | CC_BY_SA_3_0_DE -- ^ @CC-BY-SA-3.0-DE@, Creative Commons Attribution Share Alike 3.0 Germany, SPDX License List 3.16, SPDX License List 3.23-    | CC_BY_SA_3_0_IGO -- ^ @CC-BY-SA-3.0-IGO@, Creative Commons Attribution-ShareAlike 3.0 IGO, SPDX License List 3.23+    | CC_BY_SA_3_0_AT -- ^ @CC-BY-SA-3.0-AT@, Creative Commons Attribution Share Alike 3.0 Austria, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | CC_BY_SA_3_0_DE -- ^ @CC-BY-SA-3.0-DE@, Creative Commons Attribution Share Alike 3.0 Germany, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | CC_BY_SA_3_0_IGO -- ^ @CC-BY-SA-3.0-IGO@, Creative Commons Attribution-ShareAlike 3.0 IGO, SPDX License List 3.23, SPDX License List 3.25     | CC_BY_SA_3_0 -- ^ @CC-BY-SA-3.0@, Creative Commons Attribution Share Alike 3.0 Unported     | CC_BY_SA_4_0 -- ^ @CC-BY-SA-4.0@, Creative Commons Attribution Share Alike 4.0 International-    | CC_PDDC -- ^ @CC-PDDC@, Creative Commons Public Domain Dedication and Certification, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | CC_PDDC -- ^ @CC-PDDC@, Creative Commons Public Domain Dedication and Certification, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | CC0_1_0 -- ^ @CC0-1.0@, Creative Commons Zero v1.0 Universal     | CDDL_1_0 -- ^ @CDDL-1.0@, Common Development and Distribution License 1.0     | CDDL_1_1 -- ^ @CDDL-1.1@, Common Development and Distribution License 1.1-    | CDL_1_0 -- ^ @CDL-1.0@, Common Documentation License 1.0, SPDX License List 3.16, SPDX License List 3.23+    | CDL_1_0 -- ^ @CDL-1.0@, Common Documentation License 1.0, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | CDLA_Permissive_1_0 -- ^ @CDLA-Permissive-1.0@, Community Data License Agreement Permissive 1.0-    | CDLA_Permissive_2_0 -- ^ @CDLA-Permissive-2.0@, Community Data License Agreement Permissive 2.0, SPDX License List 3.16, SPDX License List 3.23+    | CDLA_Permissive_2_0 -- ^ @CDLA-Permissive-2.0@, Community Data License Agreement Permissive 2.0, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | CDLA_Sharing_1_0 -- ^ @CDLA-Sharing-1.0@, Community Data License Agreement Sharing 1.0     | CECILL_1_0 -- ^ @CECILL-1.0@, CeCILL Free Software License Agreement v1.0     | CECILL_1_1 -- ^ @CECILL-1.1@, CeCILL Free Software License Agreement v1.1@@ -203,105 +208,108 @@     | CECILL_2_1 -- ^ @CECILL-2.1@, CeCILL Free Software License Agreement v2.1     | CECILL_B -- ^ @CECILL-B@, CeCILL-B Free Software License Agreement     | CECILL_C -- ^ @CECILL-C@, CeCILL-C Free Software License Agreement-    | CERN_OHL_1_1 -- ^ @CERN-OHL-1.1@, CERN Open Hardware Licence v1.1, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | CERN_OHL_1_2 -- ^ @CERN-OHL-1.2@, CERN Open Hardware Licence v1.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | CERN_OHL_P_2_0 -- ^ @CERN-OHL-P-2.0@, CERN Open Hardware Licence Version 2 - Permissive, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | CERN_OHL_S_2_0 -- ^ @CERN-OHL-S-2.0@, CERN Open Hardware Licence Version 2 - Strongly Reciprocal, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | CERN_OHL_W_2_0 -- ^ @CERN-OHL-W-2.0@, CERN Open Hardware Licence Version 2 - Weakly Reciprocal, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | CFITSIO -- ^ @CFITSIO@, CFITSIO License, SPDX License List 3.23-    | Check_cvs -- ^ @check-cvs@, check-cvs License, SPDX License List 3.23-    | Checkmk -- ^ @checkmk@, Checkmk License, SPDX License List 3.23+    | CERN_OHL_1_1 -- ^ @CERN-OHL-1.1@, CERN Open Hardware Licence v1.1, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | CERN_OHL_1_2 -- ^ @CERN-OHL-1.2@, CERN Open Hardware Licence v1.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | CERN_OHL_P_2_0 -- ^ @CERN-OHL-P-2.0@, CERN Open Hardware Licence Version 2 - Permissive, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | CERN_OHL_S_2_0 -- ^ @CERN-OHL-S-2.0@, CERN Open Hardware Licence Version 2 - Strongly Reciprocal, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | CERN_OHL_W_2_0 -- ^ @CERN-OHL-W-2.0@, CERN Open Hardware Licence Version 2 - Weakly Reciprocal, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | CFITSIO -- ^ @CFITSIO@, CFITSIO License, SPDX License List 3.23, SPDX License List 3.25+    | Check_cvs -- ^ @check-cvs@, check-cvs License, SPDX License List 3.23, SPDX License List 3.25+    | Checkmk -- ^ @checkmk@, Checkmk License, SPDX License List 3.23, SPDX License List 3.25     | ClArtistic -- ^ @ClArtistic@, Clarified Artistic License-    | Clips -- ^ @Clips@, Clips License, SPDX License List 3.23-    | CMU_Mach_nodoc -- ^ @CMU-Mach-nodoc@, CMU    Mach - no notices-in-documentation variant, SPDX License List 3.23-    | CMU_Mach -- ^ @CMU-Mach@, CMU Mach License, SPDX License List 3.23+    | Clips -- ^ @Clips@, Clips License, SPDX License List 3.23, SPDX License List 3.25+    | CMU_Mach_nodoc -- ^ @CMU-Mach-nodoc@, CMU    Mach - no notices-in-documentation variant, SPDX License List 3.23, SPDX License List 3.25+    | CMU_Mach -- ^ @CMU-Mach@, CMU Mach License, SPDX License List 3.23, SPDX License List 3.25     | CNRI_Jython -- ^ @CNRI-Jython@, CNRI Jython License     | CNRI_Python_GPL_Compatible -- ^ @CNRI-Python-GPL-Compatible@, CNRI Python Open Source GPL Compatible License Agreement     | CNRI_Python -- ^ @CNRI-Python@, CNRI Python License-    | COIL_1_0 -- ^ @COIL-1.0@, Copyfree Open Innovation License, SPDX License List 3.16, SPDX License List 3.23-    | Community_Spec_1_0 -- ^ @Community-Spec-1.0@, Community Specification License 1.0, SPDX License List 3.16, SPDX License List 3.23+    | COIL_1_0 -- ^ @COIL-1.0@, Copyfree Open Innovation License, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | Community_Spec_1_0 -- ^ @Community-Spec-1.0@, Community Specification License 1.0, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | Condor_1_1 -- ^ @Condor-1.1@, Condor Public License v1.1-    | Copyleft_next_0_3_0 -- ^ @copyleft-next-0.3.0@, copyleft-next 0.3.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | Copyleft_next_0_3_1 -- ^ @copyleft-next-0.3.1@, copyleft-next 0.3.1, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | Cornell_Lossless_JPEG -- ^ @Cornell-Lossless-JPEG@, Cornell Lossless JPEG License, SPDX License List 3.23+    | Copyleft_next_0_3_0 -- ^ @copyleft-next-0.3.0@, copyleft-next 0.3.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | Copyleft_next_0_3_1 -- ^ @copyleft-next-0.3.1@, copyleft-next 0.3.1, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | Cornell_Lossless_JPEG -- ^ @Cornell-Lossless-JPEG@, Cornell Lossless JPEG License, SPDX License List 3.23, SPDX License List 3.25     | CPAL_1_0 -- ^ @CPAL-1.0@, Common Public Attribution License 1.0     | CPL_1_0 -- ^ @CPL-1.0@, Common Public License 1.0     | CPOL_1_02 -- ^ @CPOL-1.02@, Code Project Open License 1.02-    | Cronyx -- ^ @Cronyx@, Cronyx License, SPDX License List 3.23+    | Cronyx -- ^ @Cronyx@, Cronyx License, SPDX License List 3.23, SPDX License List 3.25     | Crossword -- ^ @Crossword@, Crossword License     | CrystalStacker -- ^ @CrystalStacker@, CrystalStacker License     | CUA_OPL_1_0 -- ^ @CUA-OPL-1.0@, CUA Office Public License v1.0     | Cube -- ^ @Cube@, Cube License     | Curl -- ^ @curl@, curl License+    | Cve_tou -- ^ @cve-tou@, Common Vulnerability Enumeration ToU License, SPDX License List 3.25     | D_FSL_1_0 -- ^ @D-FSL-1.0@, Deutsche Freie Software Lizenz-    | DEC_3_Clause -- ^ @DEC-3-Clause@, DEC 3-Clause License, SPDX License List 3.23+    | DEC_3_Clause -- ^ @DEC-3-Clause@, DEC 3-Clause License, SPDX License List 3.23, SPDX License List 3.25     | Diffmark -- ^ @diffmark@, diffmark license-    | DL_DE_BY_2_0 -- ^ @DL-DE-BY-2.0@, Data licence Germany – attribution – version 2.0, SPDX License List 3.16, SPDX License List 3.23-    | DL_DE_ZERO_2_0 -- ^ @DL-DE-ZERO-2.0@, Data licence Germany – zero – version 2.0, SPDX License List 3.23+    | DL_DE_BY_2_0 -- ^ @DL-DE-BY-2.0@, Data licence Germany – attribution – version 2.0, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | DL_DE_ZERO_2_0 -- ^ @DL-DE-ZERO-2.0@, Data licence Germany – zero – version 2.0, SPDX License List 3.23, SPDX License List 3.25+    | DocBook_Schema -- ^ @DocBook-Schema@, DocBook Schema License, SPDX License List 3.25+    | DocBook_XML -- ^ @DocBook-XML@, DocBook XML License, SPDX License List 3.25     | DOC -- ^ @DOC@, DOC License     | Dotseqn -- ^ @Dotseqn@, Dotseqn License-    | DRL_1_0 -- ^ @DRL-1.0@, Detection Rule License 1.0, SPDX License List 3.16, SPDX License List 3.23-    | DRL_1_1 -- ^ @DRL-1.1@, Detection Rule License 1.1, SPDX License List 3.23+    | DRL_1_0 -- ^ @DRL-1.0@, Detection Rule License 1.0, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | DRL_1_1 -- ^ @DRL-1.1@, Detection Rule License 1.1, SPDX License List 3.23, SPDX License List 3.25     | DSDP -- ^ @DSDP@, DSDP License-    | Dtoa -- ^ @dtoa@, David M. Gay dtoa License, SPDX License List 3.23+    | Dtoa -- ^ @dtoa@, David M. Gay dtoa License, SPDX License List 3.23, SPDX License List 3.25     | Dvipdfm -- ^ @dvipdfm@, dvipdfm License     | ECL_1_0 -- ^ @ECL-1.0@, Educational Community License v1.0     | ECL_2_0 -- ^ @ECL-2.0@, Educational Community License v2.0     | EFL_1_0 -- ^ @EFL-1.0@, Eiffel Forum License v1.0     | EFL_2_0 -- ^ @EFL-2.0@, Eiffel Forum License v2.0     | EGenix -- ^ @eGenix@, eGenix.com Public License 1.1.0-    | Elastic_2_0 -- ^ @Elastic-2.0@, Elastic License 2.0, SPDX License List 3.16, SPDX License List 3.23+    | Elastic_2_0 -- ^ @Elastic-2.0@, Elastic License 2.0, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | Entessa -- ^ @Entessa@, Entessa Public License v1.0-    | EPICS -- ^ @EPICS@, EPICS Open License, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | EPICS -- ^ @EPICS@, EPICS Open License, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | EPL_1_0 -- ^ @EPL-1.0@, Eclipse Public License 1.0     | EPL_2_0 -- ^ @EPL-2.0@, Eclipse Public License 2.0     | ErlPL_1_1 -- ^ @ErlPL-1.1@, Erlang Public License v1.1-    | Etalab_2_0 -- ^ @etalab-2.0@, Etalab Open License 2.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | Etalab_2_0 -- ^ @etalab-2.0@, Etalab Open License 2.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | EUDatagrid -- ^ @EUDatagrid@, EU DataGrid Software License     | EUPL_1_0 -- ^ @EUPL-1.0@, European Union Public License 1.0     | EUPL_1_1 -- ^ @EUPL-1.1@, European Union Public License 1.1     | EUPL_1_2 -- ^ @EUPL-1.2@, European Union Public License 1.2     | Eurosym -- ^ @Eurosym@, Eurosym License     | Fair -- ^ @Fair@, Fair License-    | FBM -- ^ @FBM@, Fuzzy Bitmap License, SPDX License List 3.23-    | FDK_AAC -- ^ @FDK-AAC@, Fraunhofer FDK AAC Codec Library, SPDX License List 3.16, SPDX License List 3.23-    | Ferguson_Twofish -- ^ @Ferguson-Twofish@, Ferguson Twofish License, SPDX License List 3.23+    | FBM -- ^ @FBM@, Fuzzy Bitmap License, SPDX License List 3.23, SPDX License List 3.25+    | FDK_AAC -- ^ @FDK-AAC@, Fraunhofer FDK AAC Codec Library, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | Ferguson_Twofish -- ^ @Ferguson-Twofish@, Ferguson Twofish License, SPDX License List 3.23, SPDX License List 3.25     | Frameworx_1_0 -- ^ @Frameworx-1.0@, Frameworx Open License 1.0-    | FreeBSD_DOC -- ^ @FreeBSD-DOC@, FreeBSD Documentation License, SPDX License List 3.16, SPDX License List 3.23+    | FreeBSD_DOC -- ^ @FreeBSD-DOC@, FreeBSD Documentation License, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | FreeImage -- ^ @FreeImage@, FreeImage Public License v1.0-    | FSFAP_no_warranty_disclaimer -- ^ @FSFAP-no-warranty-disclaimer@, FSF All Permissive License (without Warranty), SPDX License List 3.23+    | FSFAP_no_warranty_disclaimer -- ^ @FSFAP-no-warranty-disclaimer@, FSF All Permissive License (without Warranty), SPDX License List 3.23, SPDX License List 3.25     | FSFAP -- ^ @FSFAP@, FSF All Permissive License-    | FSFULLRWD -- ^ @FSFULLRWD@, FSF Unlimited License (With License Retention and Warranty Disclaimer), SPDX License List 3.23+    | FSFULLRWD -- ^ @FSFULLRWD@, FSF Unlimited License (With License Retention and Warranty Disclaimer), SPDX License List 3.23, SPDX License List 3.25     | FSFULLR -- ^ @FSFULLR@, FSF Unlimited License (with License Retention)     | FSFUL -- ^ @FSFUL@, FSF Unlimited License     | FTL -- ^ @FTL@, Freetype Project License-    | Furuseth -- ^ @Furuseth@, Furuseth License, SPDX License List 3.23-    | Fwlw -- ^ @fwlw@, fwlw License, SPDX License List 3.23-    | GCR_docs -- ^ @GCR-docs@, Gnome GCR Documentation License, SPDX License List 3.23-    | GD -- ^ @GD@, GD License, SPDX License List 3.16, SPDX License List 3.23-    | GFDL_1_1_invariants_only -- ^ @GFDL-1.1-invariants-only@, GNU Free Documentation License v1.1 only - invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | GFDL_1_1_invariants_or_later -- ^ @GFDL-1.1-invariants-or-later@, GNU Free Documentation License v1.1 or later - invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | GFDL_1_1_no_invariants_only -- ^ @GFDL-1.1-no-invariants-only@, GNU Free Documentation License v1.1 only - no invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | GFDL_1_1_no_invariants_or_later -- ^ @GFDL-1.1-no-invariants-or-later@, GNU Free Documentation License v1.1 or later - no invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | Furuseth -- ^ @Furuseth@, Furuseth License, SPDX License List 3.23, SPDX License List 3.25+    | Fwlw -- ^ @fwlw@, fwlw License, SPDX License List 3.23, SPDX License List 3.25+    | GCR_docs -- ^ @GCR-docs@, Gnome GCR Documentation License, SPDX License List 3.23, SPDX License List 3.25+    | GD -- ^ @GD@, GD License, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | GFDL_1_1_invariants_only -- ^ @GFDL-1.1-invariants-only@, GNU Free Documentation License v1.1 only - invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | GFDL_1_1_invariants_or_later -- ^ @GFDL-1.1-invariants-or-later@, GNU Free Documentation License v1.1 or later - invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | GFDL_1_1_no_invariants_only -- ^ @GFDL-1.1-no-invariants-only@, GNU Free Documentation License v1.1 only - no invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | GFDL_1_1_no_invariants_or_later -- ^ @GFDL-1.1-no-invariants-or-later@, GNU Free Documentation License v1.1 or later - no invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | GFDL_1_1_only -- ^ @GFDL-1.1-only@, GNU Free Documentation License v1.1 only     | GFDL_1_1_or_later -- ^ @GFDL-1.1-or-later@, GNU Free Documentation License v1.1 or later-    | GFDL_1_2_invariants_only -- ^ @GFDL-1.2-invariants-only@, GNU Free Documentation License v1.2 only - invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | GFDL_1_2_invariants_or_later -- ^ @GFDL-1.2-invariants-or-later@, GNU Free Documentation License v1.2 or later - invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | GFDL_1_2_no_invariants_only -- ^ @GFDL-1.2-no-invariants-only@, GNU Free Documentation License v1.2 only - no invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | GFDL_1_2_no_invariants_or_later -- ^ @GFDL-1.2-no-invariants-or-later@, GNU Free Documentation License v1.2 or later - no invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | GFDL_1_2_invariants_only -- ^ @GFDL-1.2-invariants-only@, GNU Free Documentation License v1.2 only - invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | GFDL_1_2_invariants_or_later -- ^ @GFDL-1.2-invariants-or-later@, GNU Free Documentation License v1.2 or later - invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | GFDL_1_2_no_invariants_only -- ^ @GFDL-1.2-no-invariants-only@, GNU Free Documentation License v1.2 only - no invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | GFDL_1_2_no_invariants_or_later -- ^ @GFDL-1.2-no-invariants-or-later@, GNU Free Documentation License v1.2 or later - no invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | GFDL_1_2_only -- ^ @GFDL-1.2-only@, GNU Free Documentation License v1.2 only     | GFDL_1_2_or_later -- ^ @GFDL-1.2-or-later@, GNU Free Documentation License v1.2 or later-    | GFDL_1_3_invariants_only -- ^ @GFDL-1.3-invariants-only@, GNU Free Documentation License v1.3 only - invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | GFDL_1_3_invariants_or_later -- ^ @GFDL-1.3-invariants-or-later@, GNU Free Documentation License v1.3 or later - invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | GFDL_1_3_no_invariants_only -- ^ @GFDL-1.3-no-invariants-only@, GNU Free Documentation License v1.3 only - no invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | GFDL_1_3_no_invariants_or_later -- ^ @GFDL-1.3-no-invariants-or-later@, GNU Free Documentation License v1.3 or later - no invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | GFDL_1_3_invariants_only -- ^ @GFDL-1.3-invariants-only@, GNU Free Documentation License v1.3 only - invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | GFDL_1_3_invariants_or_later -- ^ @GFDL-1.3-invariants-or-later@, GNU Free Documentation License v1.3 or later - invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | GFDL_1_3_no_invariants_only -- ^ @GFDL-1.3-no-invariants-only@, GNU Free Documentation License v1.3 only - no invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | GFDL_1_3_no_invariants_or_later -- ^ @GFDL-1.3-no-invariants-or-later@, GNU Free Documentation License v1.3 or later - no invariants, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | GFDL_1_3_only -- ^ @GFDL-1.3-only@, GNU Free Documentation License v1.3 only     | GFDL_1_3_or_later -- ^ @GFDL-1.3-or-later@, GNU Free Documentation License v1.3 or later     | Giftware -- ^ @Giftware@, Giftware License     | GL2PS -- ^ @GL2PS@, GL2PS License     | Glide -- ^ @Glide@, 3dfx Glide License     | Glulxe -- ^ @Glulxe@, Glulxe License-    | GLWTPL -- ^ @GLWTPL@, Good Luck With That Public License, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | GLWTPL -- ^ @GLWTPL@, Good Luck With That Public License, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | Gnuplot -- ^ @gnuplot@, gnuplot License     | GPL_1_0_only -- ^ @GPL-1.0-only@, GNU General Public License v1.0 only     | GPL_1_0_or_later -- ^ @GPL-1.0-or-later@, GNU General Public License v1.0 or later@@ -309,60 +317,69 @@     | GPL_2_0_or_later -- ^ @GPL-2.0-or-later@, GNU General Public License v2.0 or later     | GPL_3_0_only -- ^ @GPL-3.0-only@, GNU General Public License v3.0 only     | GPL_3_0_or_later -- ^ @GPL-3.0-or-later@, GNU General Public License v3.0 or later-    | Graphics_Gems -- ^ @Graphics-Gems@, Graphics Gems License, SPDX License List 3.23+    | Graphics_Gems -- ^ @Graphics-Gems@, Graphics Gems License, SPDX License List 3.23, SPDX License List 3.25     | GSOAP_1_3b -- ^ @gSOAP-1.3b@, gSOAP Public License v1.3b-    | Gtkbook -- ^ @gtkbook@, gtkbook License, SPDX License List 3.23+    | Gtkbook -- ^ @gtkbook@, gtkbook License, SPDX License List 3.23, SPDX License List 3.25+    | Gutmann -- ^ @Gutmann@, Gutmann License, SPDX License List 3.25     | HaskellReport -- ^ @HaskellReport@, Haskell Language Report License-    | Hdparm -- ^ @hdparm@, hdparm License, SPDX License List 3.23-    | Hippocratic_2_1 -- ^ @Hippocratic-2.1@, Hippocratic License 2.1, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | HP_1986 -- ^ @HP-1986@, Hewlett-Packard 1986 License, SPDX License List 3.23-    | HP_1989 -- ^ @HP-1989@, Hewlett-Packard 1989 License, SPDX License List 3.23-    | HPND_DEC -- ^ @HPND-DEC@, Historical Permission Notice and Disclaimer - DEC variant, SPDX License List 3.23-    | HPND_doc_sell -- ^ @HPND-doc-sell@, Historical Permission Notice and Disclaimer - documentation sell variant, SPDX License List 3.23-    | HPND_doc -- ^ @HPND-doc@, Historical Permission Notice and Disclaimer - documentation variant, SPDX License List 3.23-    | HPND_export_US_modify -- ^ @HPND-export-US-modify@, HPND with US Government export control warning and modification rqmt, SPDX License List 3.23-    | HPND_export_US -- ^ @HPND-export-US@, HPND with US Government export control warning, SPDX License List 3.23-    | HPND_Fenneberg_Livingston -- ^ @HPND-Fenneberg-Livingston@, Historical Permission Notice and Disclaimer - Fenneberg-Livingston variant, SPDX License List 3.23-    | HPND_INRIA_IMAG -- ^ @HPND-INRIA-IMAG@, Historical Permission Notice and Disclaimer    - INRIA-IMAG variant, SPDX License List 3.23-    | HPND_Kevlin_Henney -- ^ @HPND-Kevlin-Henney@, Historical Permission Notice and Disclaimer - Kevlin Henney variant, SPDX License List 3.23-    | HPND_Markus_Kuhn -- ^ @HPND-Markus-Kuhn@, Historical Permission Notice and Disclaimer - Markus Kuhn variant, SPDX License List 3.23-    | HPND_MIT_disclaimer -- ^ @HPND-MIT-disclaimer@, Historical Permission Notice and Disclaimer with MIT disclaimer, SPDX License List 3.23-    | HPND_Pbmplus -- ^ @HPND-Pbmplus@, Historical Permission Notice and Disclaimer - Pbmplus variant, SPDX License List 3.23-    | HPND_sell_MIT_disclaimer_xserver -- ^ @HPND-sell-MIT-disclaimer-xserver@, Historical Permission Notice and Disclaimer - sell xserver variant with MIT disclaimer, SPDX License List 3.23-    | HPND_sell_regexpr -- ^ @HPND-sell-regexpr@, Historical Permission Notice and Disclaimer - sell regexpr variant, SPDX License List 3.23-    | HPND_sell_variant_MIT_disclaimer -- ^ @HPND-sell-variant-MIT-disclaimer@, HPND sell variant with MIT disclaimer, SPDX License List 3.23-    | HPND_sell_variant -- ^ @HPND-sell-variant@, Historical Permission Notice and Disclaimer - sell variant, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | HPND_UC -- ^ @HPND-UC@, Historical Permission Notice and Disclaimer - University of California variant, SPDX License List 3.23+    | Hdparm -- ^ @hdparm@, hdparm License, SPDX License List 3.23, SPDX License List 3.25+    | HIDAPI -- ^ @HIDAPI@, HIDAPI License, SPDX License List 3.25+    | Hippocratic_2_1 -- ^ @Hippocratic-2.1@, Hippocratic License 2.1, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | HP_1986 -- ^ @HP-1986@, Hewlett-Packard 1986 License, SPDX License List 3.23, SPDX License List 3.25+    | HP_1989 -- ^ @HP-1989@, Hewlett-Packard 1989 License, SPDX License List 3.23, SPDX License List 3.25+    | HPND_DEC -- ^ @HPND-DEC@, Historical Permission Notice and Disclaimer - DEC variant, SPDX License List 3.23, SPDX License List 3.25+    | HPND_doc_sell -- ^ @HPND-doc-sell@, Historical Permission Notice and Disclaimer - documentation sell variant, SPDX License List 3.23, SPDX License List 3.25+    | HPND_doc -- ^ @HPND-doc@, Historical Permission Notice and Disclaimer - documentation variant, SPDX License List 3.23, SPDX License List 3.25+    | HPND_export_US_acknowledgement -- ^ @HPND-export-US-acknowledgement@, HPND with US Government export control warning and acknowledgment, SPDX License List 3.25+    | HPND_export_US_modify -- ^ @HPND-export-US-modify@, HPND with US Government export control warning and modification rqmt, SPDX License List 3.23, SPDX License List 3.25+    | HPND_export_US -- ^ @HPND-export-US@, HPND with US Government export control warning, SPDX License List 3.23, SPDX License List 3.25+    | HPND_export2_US -- ^ @HPND-export2-US@, HPND with US Government export control and 2 disclaimers, SPDX License List 3.25+    | HPND_Fenneberg_Livingston -- ^ @HPND-Fenneberg-Livingston@, Historical Permission Notice and Disclaimer - Fenneberg-Livingston variant, SPDX License List 3.23, SPDX License List 3.25+    | HPND_INRIA_IMAG -- ^ @HPND-INRIA-IMAG@, Historical Permission Notice and Disclaimer    - INRIA-IMAG variant, SPDX License List 3.23, SPDX License List 3.25+    | HPND_Intel -- ^ @HPND-Intel@, Historical Permission Notice and Disclaimer - Intel variant, SPDX License List 3.25+    | HPND_Kevlin_Henney -- ^ @HPND-Kevlin-Henney@, Historical Permission Notice and Disclaimer - Kevlin Henney variant, SPDX License List 3.23, SPDX License List 3.25+    | HPND_Markus_Kuhn -- ^ @HPND-Markus-Kuhn@, Historical Permission Notice and Disclaimer - Markus Kuhn variant, SPDX License List 3.23, SPDX License List 3.25+    | HPND_merchantability_variant -- ^ @HPND-merchantability-variant@, Historical Permission Notice and Disclaimer - merchantability variant, SPDX License List 3.25+    | HPND_MIT_disclaimer -- ^ @HPND-MIT-disclaimer@, Historical Permission Notice and Disclaimer with MIT disclaimer, SPDX License List 3.23, SPDX License List 3.25+    | HPND_Netrek -- ^ @HPND-Netrek@, Historical Permission Notice and Disclaimer - Netrek variant, SPDX License List 3.25+    | HPND_Pbmplus -- ^ @HPND-Pbmplus@, Historical Permission Notice and Disclaimer - Pbmplus variant, SPDX License List 3.23, SPDX License List 3.25+    | HPND_sell_MIT_disclaimer_xserver -- ^ @HPND-sell-MIT-disclaimer-xserver@, Historical Permission Notice and Disclaimer - sell xserver variant with MIT disclaimer, SPDX License List 3.23, SPDX License List 3.25+    | HPND_sell_regexpr -- ^ @HPND-sell-regexpr@, Historical Permission Notice and Disclaimer - sell regexpr variant, SPDX License List 3.23, SPDX License List 3.25+    | HPND_sell_variant_MIT_disclaimer_rev -- ^ @HPND-sell-variant-MIT-disclaimer-rev@, HPND sell variant with MIT disclaimer - reverse, SPDX License List 3.25+    | HPND_sell_variant_MIT_disclaimer -- ^ @HPND-sell-variant-MIT-disclaimer@, HPND sell variant with MIT disclaimer, SPDX License List 3.23, SPDX License List 3.25+    | HPND_sell_variant -- ^ @HPND-sell-variant@, Historical Permission Notice and Disclaimer - sell variant, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | HPND_UC_export_US -- ^ @HPND-UC-export-US@, Historical Permission Notice and Disclaimer - University of California, US export warning, SPDX License List 3.25+    | HPND_UC -- ^ @HPND-UC@, Historical Permission Notice and Disclaimer - University of California variant, SPDX License List 3.23, SPDX License List 3.25     | HPND -- ^ @HPND@, Historical Permission Notice and Disclaimer-    | HTMLTIDY -- ^ @HTMLTIDY@, HTML Tidy License, SPDX License List 3.16, SPDX License List 3.23+    | HTMLTIDY -- ^ @HTMLTIDY@, HTML Tidy License, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | IBM_pibs -- ^ @IBM-pibs@, IBM PowerPC Initialization and Boot Software     | ICU -- ^ @ICU@, ICU License-    | IEC_Code_Components_EULA -- ^ @IEC-Code-Components-EULA@, IEC    Code Components End-user licence agreement, SPDX License List 3.23-    | IJG_short -- ^ @IJG-short@, Independent JPEG Group License - short, SPDX License List 3.23+    | IEC_Code_Components_EULA -- ^ @IEC-Code-Components-EULA@, IEC    Code Components End-user licence agreement, SPDX License List 3.23, SPDX License List 3.25+    | IJG_short -- ^ @IJG-short@, Independent JPEG Group License - short, SPDX License List 3.23, SPDX License List 3.25     | IJG -- ^ @IJG@, Independent JPEG Group License     | ImageMagick -- ^ @ImageMagick@, ImageMagick License     | IMatix -- ^ @iMatix@, iMatix Standard Function Library Agreement     | Imlib2 -- ^ @Imlib2@, Imlib2 License     | Info_ZIP -- ^ @Info-ZIP@, Info-ZIP License-    | Inner_Net_2_0 -- ^ @Inner-Net-2.0@, Inner Net License v2.0, SPDX License List 3.23+    | Inner_Net_2_0 -- ^ @Inner-Net-2.0@, Inner Net License v2.0, SPDX License List 3.23, SPDX License List 3.25     | Intel_ACPI -- ^ @Intel-ACPI@, Intel ACPI Software License Agreement     | Intel -- ^ @Intel@, Intel Open Source License     | Interbase_1_0 -- ^ @Interbase-1.0@, Interbase Public License v1.0     | IPA -- ^ @IPA@, IPA Font License     | IPL_1_0 -- ^ @IPL-1.0@, IBM Public License v1.0-    | ISC_Veillard -- ^ @ISC-Veillard@, ISC Veillard variant, SPDX License List 3.23+    | ISC_Veillard -- ^ @ISC-Veillard@, ISC Veillard variant, SPDX License List 3.23, SPDX License List 3.25     | ISC -- ^ @ISC@, ISC License-    | Jam -- ^ @Jam@, Jam License, SPDX License List 3.16, SPDX License List 3.23+    | Jam -- ^ @Jam@, Jam License, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | JasPer_2_0 -- ^ @JasPer-2.0@, JasPer License-    | JPL_image -- ^ @JPL-image@, JPL Image Use Policy, SPDX License List 3.23-    | JPNIC -- ^ @JPNIC@, Japan Network Information Center License, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | JPL_image -- ^ @JPL-image@, JPL Image Use Policy, SPDX License List 3.23, SPDX License List 3.25+    | JPNIC -- ^ @JPNIC@, Japan Network Information Center License, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | JSON -- ^ @JSON@, JSON License-    | Kastrup -- ^ @Kastrup@, Kastrup License, SPDX License List 3.23-    | Kazlib -- ^ @Kazlib@, Kazlib License, SPDX License List 3.23-    | Knuth_CTAN -- ^ @Knuth-CTAN@, Knuth CTAN License, SPDX License List 3.23+    | Kastrup -- ^ @Kastrup@, Kastrup License, SPDX License List 3.23, SPDX License List 3.25+    | Kazlib -- ^ @Kazlib@, Kazlib License, SPDX License List 3.23, SPDX License List 3.25+    | Knuth_CTAN -- ^ @Knuth-CTAN@, Knuth CTAN License, SPDX License List 3.23, SPDX License List 3.25     | LAL_1_2 -- ^ @LAL-1.2@, Licence Art Libre 1.2     | LAL_1_3 -- ^ @LAL-1.3@, Licence Art Libre 1.3-    | Latex2e_translated_notice -- ^ @Latex2e-translated-notice@, Latex2e with translated notice permission, SPDX License List 3.23+    | Latex2e_translated_notice -- ^ @Latex2e-translated-notice@, Latex2e with translated notice permission, SPDX License List 3.23, SPDX License List 3.25     | Latex2e -- ^ @Latex2e@, Latex2e License     | Leptonica -- ^ @Leptonica@, Leptonica License     | LGPL_2_0_only -- ^ @LGPL-2.0-only@, GNU Library General Public License v2 only@@ -372,21 +389,21 @@     | LGPL_3_0_only -- ^ @LGPL-3.0-only@, GNU Lesser General Public License v3.0 only     | LGPL_3_0_or_later -- ^ @LGPL-3.0-or-later@, GNU Lesser General Public License v3.0 or later     | LGPLLR -- ^ @LGPLLR@, Lesser General Public License For Linguistic Resources-    | Libpng_2_0 -- ^ @libpng-2.0@, PNG Reference Library version 2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | Libpng_2_0 -- ^ @libpng-2.0@, PNG Reference Library version 2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | Libpng -- ^ @Libpng@, libpng License-    | Libselinux_1_0 -- ^ @libselinux-1.0@, libselinux public domain notice, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | Libselinux_1_0 -- ^ @libselinux-1.0@, libselinux public domain notice, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | Libtiff -- ^ @libtiff@, libtiff License-    | Libutil_David_Nugent -- ^ @libutil-David-Nugent@, libutil David Nugent License, SPDX License List 3.23+    | Libutil_David_Nugent -- ^ @libutil-David-Nugent@, libutil David Nugent License, SPDX License List 3.23, SPDX License List 3.25     | LiLiQ_P_1_1 -- ^ @LiLiQ-P-1.1@, Licence Libre du Québec – Permissive version 1.1     | LiLiQ_R_1_1 -- ^ @LiLiQ-R-1.1@, Licence Libre du Québec – Réciprocité version 1.1     | LiLiQ_Rplus_1_1 -- ^ @LiLiQ-Rplus-1.1@, Licence Libre du Québec – Réciprocité forte version 1.1-    | Linux_man_pages_1_para -- ^ @Linux-man-pages-1-para@, Linux man-pages - 1 paragraph, SPDX License List 3.23-    | Linux_man_pages_copyleft_2_para -- ^ @Linux-man-pages-copyleft-2-para@, Linux man-pages Copyleft - 2 paragraphs, SPDX License List 3.23-    | Linux_man_pages_copyleft_var -- ^ @Linux-man-pages-copyleft-var@, Linux man-pages Copyleft Variant, SPDX License List 3.23-    | Linux_man_pages_copyleft -- ^ @Linux-man-pages-copyleft@, Linux man-pages Copyleft, SPDX License List 3.16, SPDX License List 3.23-    | Linux_OpenIB -- ^ @Linux-OpenIB@, Linux Kernel Variant of OpenIB.org license, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | LOOP -- ^ @LOOP@, Common Lisp LOOP License, SPDX License List 3.23-    | LPD_document -- ^ @LPD-document@, LPD Documentation License, SPDX License List 3.23+    | Linux_man_pages_1_para -- ^ @Linux-man-pages-1-para@, Linux man-pages - 1 paragraph, SPDX License List 3.23, SPDX License List 3.25+    | Linux_man_pages_copyleft_2_para -- ^ @Linux-man-pages-copyleft-2-para@, Linux man-pages Copyleft - 2 paragraphs, SPDX License List 3.23, SPDX License List 3.25+    | Linux_man_pages_copyleft_var -- ^ @Linux-man-pages-copyleft-var@, Linux man-pages Copyleft Variant, SPDX License List 3.23, SPDX License List 3.25+    | Linux_man_pages_copyleft -- ^ @Linux-man-pages-copyleft@, Linux man-pages Copyleft, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | Linux_OpenIB -- ^ @Linux-OpenIB@, Linux Kernel Variant of OpenIB.org license, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | LOOP -- ^ @LOOP@, Common Lisp LOOP License, SPDX License List 3.23, SPDX License List 3.25+    | LPD_document -- ^ @LPD-document@, LPD Documentation License, SPDX License List 3.23, SPDX License List 3.25     | LPL_1_02 -- ^ @LPL-1.02@, Lucent Public License v1.02     | LPL_1_0 -- ^ @LPL-1.0@, Lucent Public License Version 1.0     | LPPL_1_0 -- ^ @LPPL-1.0@, LaTeX Project Public License v1.0@@ -394,66 +411,69 @@     | LPPL_1_2 -- ^ @LPPL-1.2@, LaTeX Project Public License v1.2     | LPPL_1_3a -- ^ @LPPL-1.3a@, LaTeX Project Public License v1.3a     | LPPL_1_3c -- ^ @LPPL-1.3c@, LaTeX Project Public License v1.3c-    | Lsof -- ^ @lsof@, lsof License, SPDX License List 3.23-    | Lucida_Bitmap_Fonts -- ^ @Lucida-Bitmap-Fonts@, Lucida Bitmap Fonts License, SPDX License List 3.23-    | LZMA_SDK_9_11_to_9_20 -- ^ @LZMA-SDK-9.11-to-9.20@, LZMA SDK License (versions 9.11 to 9.20), SPDX License List 3.23-    | LZMA_SDK_9_22 -- ^ @LZMA-SDK-9.22@, LZMA SDK License (versions 9.22 and beyond), SPDX License List 3.23-    | Mackerras_3_Clause_acknowledgment -- ^ @Mackerras-3-Clause-acknowledgment@, Mackerras 3-Clause - acknowledgment variant, SPDX License List 3.23-    | Mackerras_3_Clause -- ^ @Mackerras-3-Clause@, Mackerras 3-Clause License, SPDX License List 3.23-    | Magaz -- ^ @magaz@, magaz License, SPDX License List 3.23-    | Mailprio -- ^ @mailprio@, mailprio License, SPDX License List 3.23+    | Lsof -- ^ @lsof@, lsof License, SPDX License List 3.23, SPDX License List 3.25+    | Lucida_Bitmap_Fonts -- ^ @Lucida-Bitmap-Fonts@, Lucida Bitmap Fonts License, SPDX License List 3.23, SPDX License List 3.25+    | LZMA_SDK_9_11_to_9_20 -- ^ @LZMA-SDK-9.11-to-9.20@, LZMA SDK License (versions 9.11 to 9.20), SPDX License List 3.23, SPDX License List 3.25+    | LZMA_SDK_9_22 -- ^ @LZMA-SDK-9.22@, LZMA SDK License (versions 9.22 and beyond), SPDX License List 3.23, SPDX License List 3.25+    | Mackerras_3_Clause_acknowledgment -- ^ @Mackerras-3-Clause-acknowledgment@, Mackerras 3-Clause - acknowledgment variant, SPDX License List 3.23, SPDX License List 3.25+    | Mackerras_3_Clause -- ^ @Mackerras-3-Clause@, Mackerras 3-Clause License, SPDX License List 3.23, SPDX License List 3.25+    | Magaz -- ^ @magaz@, magaz License, SPDX License List 3.23, SPDX License List 3.25+    | Mailprio -- ^ @mailprio@, mailprio License, SPDX License List 3.23, SPDX License List 3.25     | MakeIndex -- ^ @MakeIndex@, MakeIndex License-    | Martin_Birgmeier -- ^ @Martin-Birgmeier@, Martin Birgmeier License, SPDX License List 3.23-    | McPhee_slideshow -- ^ @McPhee-slideshow@, McPhee Slideshow License, SPDX License List 3.23-    | Metamail -- ^ @metamail@, metamail License, SPDX License List 3.23-    | Minpack -- ^ @Minpack@, Minpack License, SPDX License List 3.23+    | Martin_Birgmeier -- ^ @Martin-Birgmeier@, Martin Birgmeier License, SPDX License List 3.23, SPDX License List 3.25+    | McPhee_slideshow -- ^ @McPhee-slideshow@, McPhee Slideshow License, SPDX License List 3.23, SPDX License List 3.25+    | Metamail -- ^ @metamail@, metamail License, SPDX License List 3.23, SPDX License List 3.25+    | Minpack -- ^ @Minpack@, Minpack License, SPDX License List 3.23, SPDX License List 3.25     | MirOS -- ^ @MirOS@, The MirOS Licence-    | MIT_0 -- ^ @MIT-0@, MIT No Attribution, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | MIT_0 -- ^ @MIT-0@, MIT No Attribution, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | MIT_advertising -- ^ @MIT-advertising@, Enlightenment License (e16)     | MIT_CMU -- ^ @MIT-CMU@, CMU License     | MIT_enna -- ^ @MIT-enna@, enna License     | MIT_feh -- ^ @MIT-feh@, feh License-    | MIT_Festival -- ^ @MIT-Festival@, MIT Festival Variant, SPDX License List 3.23-    | MIT_Modern_Variant -- ^ @MIT-Modern-Variant@, MIT License Modern Variant, SPDX License List 3.16, SPDX License List 3.23-    | MIT_open_group -- ^ @MIT-open-group@, MIT Open Group variant, SPDX License List 3.16, SPDX License List 3.23-    | MIT_testregex -- ^ @MIT-testregex@, MIT testregex Variant, SPDX License List 3.23-    | MIT_Wu -- ^ @MIT-Wu@, MIT Tom Wu Variant, SPDX License List 3.23+    | MIT_Festival -- ^ @MIT-Festival@, MIT Festival Variant, SPDX License List 3.23, SPDX License List 3.25+    | MIT_Khronos_old -- ^ @MIT-Khronos-old@, MIT Khronos - old variant, SPDX License List 3.25+    | MIT_Modern_Variant -- ^ @MIT-Modern-Variant@, MIT License Modern Variant, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | MIT_open_group -- ^ @MIT-open-group@, MIT Open Group variant, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | MIT_testregex -- ^ @MIT-testregex@, MIT testregex Variant, SPDX License List 3.23, SPDX License List 3.25+    | MIT_Wu -- ^ @MIT-Wu@, MIT Tom Wu Variant, SPDX License List 3.23, SPDX License List 3.25     | MITNFA -- ^ @MITNFA@, MIT +no-false-attribs license     | MIT -- ^ @MIT@, MIT License-    | MMIXware -- ^ @MMIXware@, MMIXware License, SPDX License List 3.23+    | MMIXware -- ^ @MMIXware@, MMIXware License, SPDX License List 3.23, SPDX License List 3.25     | Motosoto -- ^ @Motosoto@, Motosoto License-    | MPEG_SSG -- ^ @MPEG-SSG@, MPEG Software Simulation, SPDX License List 3.23-    | Mpi_permissive -- ^ @mpi-permissive@, mpi Permissive License, SPDX License List 3.23+    | MPEG_SSG -- ^ @MPEG-SSG@, MPEG Software Simulation, SPDX License List 3.23, SPDX License List 3.25+    | Mpi_permissive -- ^ @mpi-permissive@, mpi Permissive License, SPDX License List 3.23, SPDX License List 3.25     | Mpich2 -- ^ @mpich2@, mpich2 License     | MPL_1_0 -- ^ @MPL-1.0@, Mozilla Public License 1.0     | MPL_1_1 -- ^ @MPL-1.1@, Mozilla Public License 1.1     | MPL_2_0_no_copyleft_exception -- ^ @MPL-2.0-no-copyleft-exception@, Mozilla Public License 2.0 (no copyleft exception)     | MPL_2_0 -- ^ @MPL-2.0@, Mozilla Public License 2.0-    | Mplus -- ^ @mplus@, mplus Font License, SPDX License List 3.23-    | MS_LPL -- ^ @MS-LPL@, Microsoft Limited Public License, SPDX License List 3.23+    | Mplus -- ^ @mplus@, mplus Font License, SPDX License List 3.23, SPDX License List 3.25+    | MS_LPL -- ^ @MS-LPL@, Microsoft Limited Public License, SPDX License List 3.23, SPDX License List 3.25     | MS_PL -- ^ @MS-PL@, Microsoft Public License     | MS_RL -- ^ @MS-RL@, Microsoft Reciprocal License     | MTLL -- ^ @MTLL@, Matrix Template Library License-    | MulanPSL_1_0 -- ^ @MulanPSL-1.0@, Mulan Permissive Software License, Version 1, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | MulanPSL_2_0 -- ^ @MulanPSL-2.0@, Mulan Permissive Software License, Version 2, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | MulanPSL_1_0 -- ^ @MulanPSL-1.0@, Mulan Permissive Software License, Version 1, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | MulanPSL_2_0 -- ^ @MulanPSL-2.0@, Mulan Permissive Software License, Version 2, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | Multics -- ^ @Multics@, Multics License     | Mup -- ^ @Mup@, Mup License-    | NAIST_2003 -- ^ @NAIST-2003@, Nara Institute of Science and Technology License (2003), SPDX License List 3.16, SPDX License List 3.23+    | NAIST_2003 -- ^ @NAIST-2003@, Nara Institute of Science and Technology License (2003), SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | NASA_1_3 -- ^ @NASA-1.3@, NASA Open Source Agreement 1.3     | Naumen -- ^ @Naumen@, Naumen Public License     | NBPL_1_0 -- ^ @NBPL-1.0@, Net Boolean Public License v1-    | NCGL_UK_2_0 -- ^ @NCGL-UK-2.0@, Non-Commercial Government Licence, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | NCBI_PD -- ^ @NCBI-PD@, NCBI Public Domain Notice, SPDX License List 3.25+    | NCGL_UK_2_0 -- ^ @NCGL-UK-2.0@, Non-Commercial Government Licence, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | NCL -- ^ @NCL@, NCL Source Code License, SPDX License List 3.25     | NCSA -- ^ @NCSA@, University of Illinois/NCSA Open Source License-    | Net_SNMP -- ^ @Net-SNMP@, Net-SNMP License+    | Net_SNMP -- ^ @Net-SNMP@, Net-SNMP License, SPDX License List 3.0, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23     | NetCDF -- ^ @NetCDF@, NetCDF license     | Newsletr -- ^ @Newsletr@, Newsletr License     | NGPL -- ^ @NGPL@, Nethack General Public License-    | NICTA_1_0 -- ^ @NICTA-1.0@, NICTA Public Software License, Version 1.0, SPDX License List 3.23-    | NIST_PD_fallback -- ^ @NIST-PD-fallback@, NIST Public Domain Notice with license fallback, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | NIST_PD -- ^ @NIST-PD@, NIST Public Domain Notice, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | NIST_Software -- ^ @NIST-Software@, NIST Software License, SPDX License List 3.23+    | NICTA_1_0 -- ^ @NICTA-1.0@, NICTA Public Software License, Version 1.0, SPDX License List 3.23, SPDX License List 3.25+    | NIST_PD_fallback -- ^ @NIST-PD-fallback@, NIST Public Domain Notice with license fallback, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | NIST_PD -- ^ @NIST-PD@, NIST Public Domain Notice, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | NIST_Software -- ^ @NIST-Software@, NIST Software License, SPDX License List 3.23, SPDX License List 3.25     | NLOD_1_0 -- ^ @NLOD-1.0@, Norwegian Licence for Open Government Data (NLOD) 1.0-    | NLOD_2_0 -- ^ @NLOD-2.0@, Norwegian Licence for Open Government Data (NLOD) 2.0, SPDX License List 3.16, SPDX License List 3.23+    | NLOD_2_0 -- ^ @NLOD-2.0@, Norwegian Licence for Open Government Data (NLOD) 2.0, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | NLPL -- ^ @NLPL@, No Limit Public License     | Nokia -- ^ @Nokia@, Nokia Open Source License     | NOSL -- ^ @NOSL@, Netizen Open Source License@@ -462,26 +482,27 @@     | NPL_1_1 -- ^ @NPL-1.1@, Netscape Public License v1.1     | NPOSL_3_0 -- ^ @NPOSL-3.0@, Non-Profit Open Software License 3.0     | NRL -- ^ @NRL@, NRL License-    | NTP_0 -- ^ @NTP-0@, NTP No Attribution, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | NTP_0 -- ^ @NTP-0@, NTP No Attribution, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | NTP -- ^ @NTP@, NTP License-    | O_UDA_1_0 -- ^ @O-UDA-1.0@, Open Use of Data Agreement v1.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | O_UDA_1_0 -- ^ @O-UDA-1.0@, Open Use of Data Agreement v1.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | OAR -- ^ @OAR@, OAR License, SPDX License List 3.25     | OCCT_PL -- ^ @OCCT-PL@, Open CASCADE Technology Public License     | OCLC_2_0 -- ^ @OCLC-2.0@, OCLC Research Public License 2.0     | ODbL_1_0 -- ^ @ODbL-1.0@, Open Data Commons Open Database License v1.0-    | ODC_By_1_0 -- ^ @ODC-By-1.0@, Open Data Commons Attribution License v1.0, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | OFFIS -- ^ @OFFIS@, OFFIS License, SPDX License List 3.23-    | OFL_1_0_no_RFN -- ^ @OFL-1.0-no-RFN@, SIL Open Font License 1.0 with no Reserved Font Name, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | OFL_1_0_RFN -- ^ @OFL-1.0-RFN@, SIL Open Font License 1.0 with Reserved Font Name, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | ODC_By_1_0 -- ^ @ODC-By-1.0@, Open Data Commons Attribution License v1.0, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | OFFIS -- ^ @OFFIS@, OFFIS License, SPDX License List 3.23, SPDX License List 3.25+    | OFL_1_0_no_RFN -- ^ @OFL-1.0-no-RFN@, SIL Open Font License 1.0 with no Reserved Font Name, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | OFL_1_0_RFN -- ^ @OFL-1.0-RFN@, SIL Open Font License 1.0 with Reserved Font Name, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | OFL_1_0 -- ^ @OFL-1.0@, SIL Open Font License 1.0-    | OFL_1_1_no_RFN -- ^ @OFL-1.1-no-RFN@, SIL Open Font License 1.1 with no Reserved Font Name, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | OFL_1_1_RFN -- ^ @OFL-1.1-RFN@, SIL Open Font License 1.1 with Reserved Font Name, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | OFL_1_1_no_RFN -- ^ @OFL-1.1-no-RFN@, SIL Open Font License 1.1 with no Reserved Font Name, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | OFL_1_1_RFN -- ^ @OFL-1.1-RFN@, SIL Open Font License 1.1 with Reserved Font Name, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | OFL_1_1 -- ^ @OFL-1.1@, SIL Open Font License 1.1-    | OGC_1_0 -- ^ @OGC-1.0@, OGC Software License, Version 1.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | OGDL_Taiwan_1_0 -- ^ @OGDL-Taiwan-1.0@, Taiwan Open Government Data License, version 1.0, SPDX License List 3.16, SPDX License List 3.23-    | OGL_Canada_2_0 -- ^ @OGL-Canada-2.0@, Open Government Licence - Canada, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | OGL_UK_1_0 -- ^ @OGL-UK-1.0@, Open Government Licence v1.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | OGL_UK_2_0 -- ^ @OGL-UK-2.0@, Open Government Licence v2.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | OGL_UK_3_0 -- ^ @OGL-UK-3.0@, Open Government Licence v3.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | OGC_1_0 -- ^ @OGC-1.0@, OGC Software License, Version 1.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | OGDL_Taiwan_1_0 -- ^ @OGDL-Taiwan-1.0@, Taiwan Open Government Data License, version 1.0, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | OGL_Canada_2_0 -- ^ @OGL-Canada-2.0@, Open Government Licence - Canada, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | OGL_UK_1_0 -- ^ @OGL-UK-1.0@, Open Government Licence v1.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | OGL_UK_2_0 -- ^ @OGL-UK-2.0@, Open Government Licence v2.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | OGL_UK_3_0 -- ^ @OGL-UK-3.0@, Open Government Licence v3.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | OGTSL -- ^ @OGTSL@, Open Group Test Suite License     | OLDAP_1_1 -- ^ @OLDAP-1.1@, Open LDAP Public License v1.1     | OLDAP_1_2 -- ^ @OLDAP-1.2@, Open LDAP Public License v1.2@@ -499,43 +520,45 @@     | OLDAP_2_6 -- ^ @OLDAP-2.6@, Open LDAP Public License v2.6     | OLDAP_2_7 -- ^ @OLDAP-2.7@, Open LDAP Public License v2.7     | OLDAP_2_8 -- ^ @OLDAP-2.8@, Open LDAP Public License v2.8-    | OLFL_1_3 -- ^ @OLFL-1.3@, Open Logistics Foundation License Version 1.3, SPDX License List 3.23+    | OLFL_1_3 -- ^ @OLFL-1.3@, Open Logistics Foundation License Version 1.3, SPDX License List 3.23, SPDX License List 3.25     | OML -- ^ @OML@, Open Market License-    | OpenPBS_2_3 -- ^ @OpenPBS-2.3@, OpenPBS v2.3 Software License, SPDX License List 3.23-    | OpenSSL_standalone -- ^ @OpenSSL-standalone@, OpenSSL License - standalone, SPDX License List 3.23+    | OpenPBS_2_3 -- ^ @OpenPBS-2.3@, OpenPBS v2.3 Software License, SPDX License List 3.23, SPDX License List 3.25+    | OpenSSL_standalone -- ^ @OpenSSL-standalone@, OpenSSL License - standalone, SPDX License List 3.23, SPDX License List 3.25     | OpenSSL -- ^ @OpenSSL@, OpenSSL License-    | OpenVision -- ^ @OpenVision@, OpenVision License, SPDX License List 3.23+    | OpenVision -- ^ @OpenVision@, OpenVision License, SPDX License List 3.23, SPDX License List 3.25     | OPL_1_0 -- ^ @OPL-1.0@, Open Public License v1.0-    | OPL_UK_3_0 -- ^ @OPL-UK-3.0@, United    Kingdom Open Parliament Licence v3.0, SPDX License List 3.23-    | OPUBL_1_0 -- ^ @OPUBL-1.0@, Open Publication License v1.0, SPDX License List 3.16, SPDX License List 3.23+    | OPL_UK_3_0 -- ^ @OPL-UK-3.0@, United    Kingdom Open Parliament Licence v3.0, SPDX License List 3.23, SPDX License List 3.25+    | OPUBL_1_0 -- ^ @OPUBL-1.0@, Open Publication License v1.0, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | OSET_PL_2_1 -- ^ @OSET-PL-2.1@, OSET Public License version 2.1     | OSL_1_0 -- ^ @OSL-1.0@, Open Software License 1.0     | OSL_1_1 -- ^ @OSL-1.1@, Open Software License 1.1     | OSL_2_0 -- ^ @OSL-2.0@, Open Software License 2.0     | OSL_2_1 -- ^ @OSL-2.1@, Open Software License 2.1     | OSL_3_0 -- ^ @OSL-3.0@, Open Software License 3.0-    | PADL -- ^ @PADL@, PADL License, SPDX License List 3.23-    | Parity_6_0_0 -- ^ @Parity-6.0.0@, The Parity Public License 6.0.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | Parity_7_0_0 -- ^ @Parity-7.0.0@, The Parity Public License 7.0.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | PADL -- ^ @PADL@, PADL License, SPDX License List 3.23, SPDX License List 3.25+    | Parity_6_0_0 -- ^ @Parity-6.0.0@, The Parity Public License 6.0.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | Parity_7_0_0 -- ^ @Parity-7.0.0@, The Parity Public License 7.0.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | PDDL_1_0 -- ^ @PDDL-1.0@, Open Data Commons Public Domain Dedication & License 1.0     | PHP_3_01 -- ^ @PHP-3.01@, PHP License v3.01     | PHP_3_0 -- ^ @PHP-3.0@, PHP License v3.0-    | Pixar -- ^ @Pixar@, Pixar License, SPDX License List 3.23+    | Pixar -- ^ @Pixar@, Pixar License, SPDX License List 3.23, SPDX License List 3.25+    | Pkgconf -- ^ @pkgconf@, pkgconf License, SPDX License List 3.25     | Plexus -- ^ @Plexus@, Plexus Classworlds License-    | Pnmstitch -- ^ @pnmstitch@, pnmstitch License, SPDX License List 3.23-    | PolyForm_Noncommercial_1_0_0 -- ^ @PolyForm-Noncommercial-1.0.0@, PolyForm Noncommercial License 1.0.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | PolyForm_Small_Business_1_0_0 -- ^ @PolyForm-Small-Business-1.0.0@, PolyForm Small Business License 1.0.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | Pnmstitch -- ^ @pnmstitch@, pnmstitch License, SPDX License List 3.23, SPDX License List 3.25+    | PolyForm_Noncommercial_1_0_0 -- ^ @PolyForm-Noncommercial-1.0.0@, PolyForm Noncommercial License 1.0.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | PolyForm_Small_Business_1_0_0 -- ^ @PolyForm-Small-Business-1.0.0@, PolyForm Small Business License 1.0.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | PostgreSQL -- ^ @PostgreSQL@, PostgreSQL License-    | PSF_2_0 -- ^ @PSF-2.0@, Python Software Foundation License 2.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | PPL -- ^ @PPL@, Peer Production License, SPDX License List 3.25+    | PSF_2_0 -- ^ @PSF-2.0@, Python Software Foundation License 2.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | Psfrag -- ^ @psfrag@, psfrag License     | Psutils -- ^ @psutils@, psutils License-    | Python_2_0_1 -- ^ @Python-2.0.1@, Python License 2.0.1, SPDX License List 3.23+    | Python_2_0_1 -- ^ @Python-2.0.1@, Python License 2.0.1, SPDX License List 3.23, SPDX License List 3.25     | Python_2_0 -- ^ @Python-2.0@, Python License 2.0-    | Python_ldap -- ^ @python-ldap@, Python ldap License, SPDX License List 3.23+    | Python_ldap -- ^ @python-ldap@, Python ldap License, SPDX License List 3.23, SPDX License List 3.25     | Qhull -- ^ @Qhull@, Qhull License-    | QPL_1_0_INRIA_2004 -- ^ @QPL-1.0-INRIA-2004@, Q Public License 1.0 - INRIA 2004 variant, SPDX License List 3.23+    | QPL_1_0_INRIA_2004 -- ^ @QPL-1.0-INRIA-2004@, Q Public License 1.0 - INRIA 2004 variant, SPDX License List 3.23, SPDX License List 3.25     | QPL_1_0 -- ^ @QPL-1.0@, Q Public License 1.0-    | Radvd -- ^ @radvd@, radvd License, SPDX License List 3.23+    | Radvd -- ^ @radvd@, radvd License, SPDX License List 3.23, SPDX License List 3.25     | Rdisc -- ^ @Rdisc@, Rdisc License     | RHeCos_1_1 -- ^ @RHeCos-1.1@, Red Hat eCos Public License v1.1     | RPL_1_1 -- ^ @RPL-1.1@, Reciprocal Public License 1.1@@ -543,100 +566,106 @@     | RPSL_1_0 -- ^ @RPSL-1.0@, RealNetworks Public Source License v1.0     | RSA_MD -- ^ @RSA-MD@, RSA Message-Digest License     | RSCPL -- ^ @RSCPL@, Ricoh Source Code Public License+    | Ruby_pty -- ^ @Ruby-pty@, Ruby pty extension license, SPDX License List 3.25     | Ruby -- ^ @Ruby@, Ruby License-    | SAX_PD_2_0 -- ^ @SAX-PD-2.0@, Sax Public Domain Notice 2.0, SPDX License List 3.23+    | SAX_PD_2_0 -- ^ @SAX-PD-2.0@, Sax Public Domain Notice 2.0, SPDX License List 3.23, SPDX License List 3.25     | SAX_PD -- ^ @SAX-PD@, Sax Public Domain Notice     | Saxpath -- ^ @Saxpath@, Saxpath License     | SCEA -- ^ @SCEA@, SCEA Shared Source License-    | SchemeReport -- ^ @SchemeReport@, Scheme Language Report License, SPDX License List 3.16, SPDX License List 3.23-    | Sendmail_8_23 -- ^ @Sendmail-8.23@, Sendmail License 8.23, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | SchemeReport -- ^ @SchemeReport@, Scheme Language Report License, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | Sendmail_8_23 -- ^ @Sendmail-8.23@, Sendmail License 8.23, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | Sendmail -- ^ @Sendmail@, Sendmail License     | SGI_B_1_0 -- ^ @SGI-B-1.0@, SGI Free Software License B v1.0     | SGI_B_1_1 -- ^ @SGI-B-1.1@, SGI Free Software License B v1.1     | SGI_B_2_0 -- ^ @SGI-B-2.0@, SGI Free Software License B v2.0-    | SGI_OpenGL -- ^ @SGI-OpenGL@, SGI OpenGL License, SPDX License List 3.23-    | SGP4 -- ^ @SGP4@, SGP4 Permission Notice, SPDX License List 3.23-    | SHL_0_51 -- ^ @SHL-0.51@, Solderpad Hardware License, Version 0.51, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | SHL_0_5 -- ^ @SHL-0.5@, Solderpad Hardware License v0.5, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | SGI_OpenGL -- ^ @SGI-OpenGL@, SGI OpenGL License, SPDX License List 3.23, SPDX License List 3.25+    | SGP4 -- ^ @SGP4@, SGP4 Permission Notice, SPDX License List 3.23, SPDX License List 3.25+    | SHL_0_51 -- ^ @SHL-0.51@, Solderpad Hardware License, Version 0.51, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | SHL_0_5 -- ^ @SHL-0.5@, Solderpad Hardware License v0.5, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | SimPL_2_0 -- ^ @SimPL-2.0@, Simple Public License 2.0     | SISSL_1_2 -- ^ @SISSL-1.2@, Sun Industry Standards Source License v1.2     | SISSL -- ^ @SISSL@, Sun Industry Standards Source License v1.1     | Sleepycat -- ^ @Sleepycat@, Sleepycat License-    | SL -- ^ @SL@, SL License, SPDX License List 3.23+    | SL -- ^ @SL@, SL License, SPDX License List 3.23, SPDX License List 3.25     | SMLNJ -- ^ @SMLNJ@, Standard ML of New Jersey License     | SMPPL -- ^ @SMPPL@, Secure Messaging Protocol Public License     | SNIA -- ^ @SNIA@, SNIA Public License 1.1-    | Snprintf -- ^ @snprintf@, snprintf License, SPDX License List 3.23-    | SoftSurfer -- ^ @softSurfer@, softSurfer License, SPDX License List 3.23-    | Soundex -- ^ @Soundex@, Soundex License, SPDX License List 3.23+    | Snprintf -- ^ @snprintf@, snprintf License, SPDX License List 3.23, SPDX License List 3.25+    | SoftSurfer -- ^ @softSurfer@, softSurfer License, SPDX License List 3.23, SPDX License List 3.25+    | Soundex -- ^ @Soundex@, Soundex License, SPDX License List 3.23, SPDX License List 3.25     | Spencer_86 -- ^ @Spencer-86@, Spencer License 86     | Spencer_94 -- ^ @Spencer-94@, Spencer License 94     | Spencer_99 -- ^ @Spencer-99@, Spencer License 99     | SPL_1_0 -- ^ @SPL-1.0@, Sun Public License v1.0-    | Ssh_keyscan -- ^ @ssh-keyscan@, ssh-keyscan License, SPDX License List 3.23-    | SSH_OpenSSH -- ^ @SSH-OpenSSH@, SSH OpenSSH license, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | SSH_short -- ^ @SSH-short@, SSH short notice, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | SSLeay_standalone -- ^ @SSLeay-standalone@, SSLeay License - standalone, SPDX License List 3.23-    | SSPL_1_0 -- ^ @SSPL-1.0@, Server Side Public License, v 1, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | Ssh_keyscan -- ^ @ssh-keyscan@, ssh-keyscan License, SPDX License List 3.23, SPDX License List 3.25+    | SSH_OpenSSH -- ^ @SSH-OpenSSH@, SSH OpenSSH license, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | SSH_short -- ^ @SSH-short@, SSH short notice, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | SSLeay_standalone -- ^ @SSLeay-standalone@, SSLeay License - standalone, SPDX License List 3.23, SPDX License List 3.25+    | SSPL_1_0 -- ^ @SSPL-1.0@, Server Side Public License, v 1, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | SugarCRM_1_1_3 -- ^ @SugarCRM-1.1.3@, SugarCRM Public License v1.1.3-    | Sun_PPP -- ^ @Sun-PPP@, Sun PPP License, SPDX License List 3.23-    | SunPro -- ^ @SunPro@, SunPro License, SPDX License List 3.23+    | Sun_PPP_2000 -- ^ @Sun-PPP-2000@, Sun PPP License (2000), SPDX License List 3.25+    | Sun_PPP -- ^ @Sun-PPP@, Sun PPP License, SPDX License List 3.23, SPDX License List 3.25+    | SunPro -- ^ @SunPro@, SunPro License, SPDX License List 3.23, SPDX License List 3.25     | SWL -- ^ @SWL@, Scheme Widget Library (SWL) Software License Agreement-    | Swrule -- ^ @swrule@, swrule License, SPDX License List 3.23-    | Symlinks -- ^ @Symlinks@, Symlinks License, SPDX License List 3.23-    | TAPR_OHL_1_0 -- ^ @TAPR-OHL-1.0@, TAPR Open Hardware License v1.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23+    | Swrule -- ^ @swrule@, swrule License, SPDX License List 3.23, SPDX License List 3.25+    | Symlinks -- ^ @Symlinks@, Symlinks License, SPDX License List 3.23, SPDX License List 3.25+    | TAPR_OHL_1_0 -- ^ @TAPR-OHL-1.0@, TAPR Open Hardware License v1.0, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25     | TCL -- ^ @TCL@, TCL/TK License     | TCP_wrappers -- ^ @TCP-wrappers@, TCP Wrappers License-    | TermReadKey -- ^ @TermReadKey@, TermReadKey License, SPDX License List 3.23-    | TGPPL_1_0 -- ^ @TGPPL-1.0@, Transitive Grace Period Public Licence 1.0, SPDX License List 3.23+    | TermReadKey -- ^ @TermReadKey@, TermReadKey License, SPDX License List 3.23, SPDX License List 3.25+    | TGPPL_1_0 -- ^ @TGPPL-1.0@, Transitive Grace Period Public Licence 1.0, SPDX License List 3.23, SPDX License List 3.25+    | Threeparttable -- ^ @threeparttable@, threeparttable License, SPDX License List 3.25     | TMate -- ^ @TMate@, TMate Open Source License     | TORQUE_1_1 -- ^ @TORQUE-1.1@, TORQUE v2.5+ Software License v1.1     | TOSL -- ^ @TOSL@, Trusster Open Source License-    | TPDL -- ^ @TPDL@, Time::ParseDate License, SPDX License List 3.23-    | TPL_1_0 -- ^ @TPL-1.0@, THOR Public License 1.0, SPDX License List 3.23-    | TTWL -- ^ @TTWL@, Text-Tabs+Wrap License, SPDX License List 3.23-    | TTYP0 -- ^ @TTYP0@, TTYP0 License, SPDX License List 3.23-    | TU_Berlin_1_0 -- ^ @TU-Berlin-1.0@, Technische Universitaet Berlin License 1.0, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | TU_Berlin_2_0 -- ^ @TU-Berlin-2.0@, Technische Universitaet Berlin License 2.0, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | UCAR -- ^ @UCAR@, UCAR License, SPDX License List 3.23-    | UCL_1_0 -- ^ @UCL-1.0@, Upstream Compatibility License v1.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23-    | Ulem -- ^ @ulem@, ulem License, SPDX License List 3.23-    | UMich_Merit -- ^ @UMich-Merit@, Michigan/Merit Networks License, SPDX License List 3.23-    | Unicode_3_0 -- ^ @Unicode-3.0@, Unicode License v3, SPDX License List 3.23+    | TPDL -- ^ @TPDL@, Time::ParseDate License, SPDX License List 3.23, SPDX License List 3.25+    | TPL_1_0 -- ^ @TPL-1.0@, THOR Public License 1.0, SPDX License List 3.23, SPDX License List 3.25+    | TTWL -- ^ @TTWL@, Text-Tabs+Wrap License, SPDX License List 3.23, SPDX License List 3.25+    | TTYP0 -- ^ @TTYP0@, TTYP0 License, SPDX License List 3.23, SPDX License List 3.25+    | TU_Berlin_1_0 -- ^ @TU-Berlin-1.0@, Technische Universitaet Berlin License 1.0, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | TU_Berlin_2_0 -- ^ @TU-Berlin-2.0@, Technische Universitaet Berlin License 2.0, SPDX License List 3.2, SPDX License List 3.6, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | Ubuntu_font_1_0 -- ^ @Ubuntu-font-1.0@, Ubuntu Font Licence v1.0, SPDX License List 3.25+    | UCAR -- ^ @UCAR@, UCAR License, SPDX License List 3.23, SPDX License List 3.25+    | UCL_1_0 -- ^ @UCL-1.0@, Upstream Compatibility License v1.0, SPDX License List 3.9, SPDX License List 3.10, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | Ulem -- ^ @ulem@, ulem License, SPDX License List 3.23, SPDX License List 3.25+    | UMich_Merit -- ^ @UMich-Merit@, Michigan/Merit Networks License, SPDX License List 3.23, SPDX License List 3.25+    | Unicode_3_0 -- ^ @Unicode-3.0@, Unicode License v3, SPDX License List 3.23, SPDX License List 3.25     | Unicode_DFS_2015 -- ^ @Unicode-DFS-2015@, Unicode License Agreement - Data Files and Software (2015)     | Unicode_DFS_2016 -- ^ @Unicode-DFS-2016@, Unicode License Agreement - Data Files and Software (2016)     | Unicode_TOU -- ^ @Unicode-TOU@, Unicode Terms of Use-    | UnixCrypt -- ^ @UnixCrypt@, UnixCrypt License, SPDX License List 3.23+    | UnixCrypt -- ^ @UnixCrypt@, UnixCrypt License, SPDX License List 3.23, SPDX License List 3.25     | Unlicense -- ^ @Unlicense@, The Unlicense     | UPL_1_0 -- ^ @UPL-1.0@, Universal Permissive License v1.0-    | URT_RLE -- ^ @URT-RLE@, Utah Raster Toolkit Run Length Encoded License, SPDX License List 3.23+    | URT_RLE -- ^ @URT-RLE@, Utah Raster Toolkit Run Length Encoded License, SPDX License List 3.23, SPDX License List 3.25     | Vim -- ^ @Vim@, Vim License     | VOSTROM -- ^ @VOSTROM@, VOSTROM Public License for Open Source     | VSL_1_0 -- ^ @VSL-1.0@, Vovida Software License v1.0     | W3C_19980720 -- ^ @W3C-19980720@, W3C Software Notice and License (1998-07-20)     | W3C_20150513 -- ^ @W3C-20150513@, W3C Software Notice and Document License (2015-05-13)     | W3C -- ^ @W3C@, W3C Software Notice and License (2002-12-31)-    | W3m -- ^ @w3m@, w3m License, SPDX License List 3.23+    | W3m -- ^ @w3m@, w3m License, SPDX License List 3.23, SPDX License List 3.25     | Watcom_1_0 -- ^ @Watcom-1.0@, Sybase Open Watcom Public License 1.0-    | Widget_Workshop -- ^ @Widget-Workshop@, Widget Workshop License, SPDX License List 3.23+    | Widget_Workshop -- ^ @Widget-Workshop@, Widget Workshop License, SPDX License List 3.23, SPDX License List 3.25     | Wsuipa -- ^ @Wsuipa@, Wsuipa License     | WTFPL -- ^ @WTFPL@, Do What The F*ck You Want To Public License-    | X11_distribute_modifications_variant -- ^ @X11-distribute-modifications-variant@, X11 License Distribution Modification Variant, SPDX License List 3.16, SPDX License List 3.23+    | X11_distribute_modifications_variant -- ^ @X11-distribute-modifications-variant@, X11 License Distribution Modification Variant, SPDX License List 3.16, SPDX License List 3.23, SPDX License List 3.25+    | X11_swapped -- ^ @X11-swapped@, X11 swapped final paragraphs, SPDX License List 3.25     | X11 -- ^ @X11@, X11 License-    | Xdebug_1_03 -- ^ @Xdebug-1.03@, Xdebug License v 1.03, SPDX License List 3.23+    | Xdebug_1_03 -- ^ @Xdebug-1.03@, Xdebug License v 1.03, SPDX License List 3.23, SPDX License List 3.25     | Xerox -- ^ @Xerox@, Xerox License-    | Xfig -- ^ @Xfig@, Xfig License, SPDX License List 3.23+    | Xfig -- ^ @Xfig@, Xfig License, SPDX License List 3.23, SPDX License List 3.25     | XFree86_1_1 -- ^ @XFree86-1.1@, XFree86 License 1.1     | Xinetd -- ^ @xinetd@, xinetd License-    | Xkeyboard_config_Zinoviev -- ^ @xkeyboard-config-Zinoviev@, xkeyboard-config Zinoviev License, SPDX License List 3.23-    | Xlock -- ^ @xlock@, xlock License, SPDX License List 3.23+    | Xkeyboard_config_Zinoviev -- ^ @xkeyboard-config-Zinoviev@, xkeyboard-config Zinoviev License, SPDX License List 3.23, SPDX License List 3.25+    | Xlock -- ^ @xlock@, xlock License, SPDX License List 3.23, SPDX License List 3.25     | Xnet -- ^ @Xnet@, X.Net License     | Xpp -- ^ @xpp@, XPP License     | XSkat -- ^ @XSkat@, XSkat License+    | Xzoom -- ^ @xzoom@, xzoom License, SPDX License List 3.25     | YPL_1_0 -- ^ @YPL-1.0@, Yahoo! Public License v1.0     | YPL_1_1 -- ^ @YPL-1.1@, Yahoo! Public License v1.1     | Zed -- ^ @Zed@, Zed License-    | Zeeff -- ^ @Zeeff@, Zeeff License, SPDX License List 3.23+    | Zeeff -- ^ @Zeeff@, Zeeff License, SPDX License List 3.23, SPDX License List 3.25     | Zend_2_0 -- ^ @Zend-2.0@, Zend License v2.0     | Zimbra_1_3 -- ^ @Zimbra-1.3@, Zimbra Public License v1.3     | Zimbra_1_4 -- ^ @Zimbra-1.4@, Zimbra Public License v1.4@@ -728,6 +757,7 @@ -- | License SPDX identifier, e.g. @"BSD-3-Clause"@. licenseId :: LicenseId -> String licenseId NullBSD = "0BSD"+licenseId X3D_Slicer_1_0 = "3D-Slicer-1.0" licenseId AAL = "AAL" licenseId Abstyles = "Abstyles" licenseId AdaCore_doc = "AdaCore-doc"@@ -748,12 +778,14 @@ licenseId AGPL_3_0_only = "AGPL-3.0-only" licenseId AGPL_3_0_or_later = "AGPL-3.0-or-later" licenseId Aladdin = "Aladdin"+licenseId AMD_newlib = "AMD-newlib" licenseId AMDPLPA = "AMDPLPA" licenseId AML_glslang = "AML-glslang" licenseId AML = "AML" licenseId AMPAS = "AMPAS" licenseId ANTLR_PD_fallback = "ANTLR-PD-fallback" licenseId ANTLR_PD = "ANTLR-PD"+licenseId Any_OSI = "any-OSI" licenseId Apache_1_0 = "Apache-1.0" licenseId Apache_1_1 = "Apache-1.1" licenseId Apache_2_0 = "Apache-2.0"@@ -790,6 +822,7 @@ licenseId BSD_2_Clause_FreeBSD = "BSD-2-Clause-FreeBSD" licenseId BSD_2_Clause_NetBSD = "BSD-2-Clause-NetBSD" licenseId BSD_2_Clause_Darwin = "BSD-2-Clause-Darwin"+licenseId BSD_2_Clause_first_lines = "BSD-2-Clause-first-lines" licenseId BSD_2_Clause_Patent = "BSD-2-Clause-Patent" licenseId BSD_2_Clause_Views = "BSD-2-Clause-Views" licenseId BSD_2_Clause = "BSD-2-Clause"@@ -829,6 +862,7 @@ licenseId CAL_1_0 = "CAL-1.0" licenseId Caldera_no_preamble = "Caldera-no-preamble" licenseId Caldera = "Caldera"+licenseId Catharon = "Catharon" licenseId CATOSL_1_1 = "CATOSL-1.1" licenseId CC_BY_1_0 = "CC-BY-1.0" licenseId CC_BY_2_0 = "CC-BY-2.0"@@ -925,11 +959,14 @@ licenseId CUA_OPL_1_0 = "CUA-OPL-1.0" licenseId Cube = "Cube" licenseId Curl = "curl"+licenseId Cve_tou = "cve-tou" licenseId D_FSL_1_0 = "D-FSL-1.0" licenseId DEC_3_Clause = "DEC-3-Clause" licenseId Diffmark = "diffmark" licenseId DL_DE_BY_2_0 = "DL-DE-BY-2.0" licenseId DL_DE_ZERO_2_0 = "DL-DE-ZERO-2.0"+licenseId DocBook_Schema = "DocBook-Schema"+licenseId DocBook_XML = "DocBook-XML" licenseId DOC = "DOC" licenseId Dotseqn = "Dotseqn" licenseId DRL_1_0 = "DRL-1.0"@@ -1004,26 +1041,35 @@ licenseId Graphics_Gems = "Graphics-Gems" licenseId GSOAP_1_3b = "gSOAP-1.3b" licenseId Gtkbook = "gtkbook"+licenseId Gutmann = "Gutmann" licenseId HaskellReport = "HaskellReport" licenseId Hdparm = "hdparm"+licenseId HIDAPI = "HIDAPI" licenseId Hippocratic_2_1 = "Hippocratic-2.1" licenseId HP_1986 = "HP-1986" licenseId HP_1989 = "HP-1989" licenseId HPND_DEC = "HPND-DEC" licenseId HPND_doc_sell = "HPND-doc-sell" licenseId HPND_doc = "HPND-doc"+licenseId HPND_export_US_acknowledgement = "HPND-export-US-acknowledgement" licenseId HPND_export_US_modify = "HPND-export-US-modify" licenseId HPND_export_US = "HPND-export-US"+licenseId HPND_export2_US = "HPND-export2-US" licenseId HPND_Fenneberg_Livingston = "HPND-Fenneberg-Livingston" licenseId HPND_INRIA_IMAG = "HPND-INRIA-IMAG"+licenseId HPND_Intel = "HPND-Intel" licenseId HPND_Kevlin_Henney = "HPND-Kevlin-Henney" licenseId HPND_Markus_Kuhn = "HPND-Markus-Kuhn"+licenseId HPND_merchantability_variant = "HPND-merchantability-variant" licenseId HPND_MIT_disclaimer = "HPND-MIT-disclaimer"+licenseId HPND_Netrek = "HPND-Netrek" licenseId HPND_Pbmplus = "HPND-Pbmplus" licenseId HPND_sell_MIT_disclaimer_xserver = "HPND-sell-MIT-disclaimer-xserver" licenseId HPND_sell_regexpr = "HPND-sell-regexpr"+licenseId HPND_sell_variant_MIT_disclaimer_rev = "HPND-sell-variant-MIT-disclaimer-rev" licenseId HPND_sell_variant_MIT_disclaimer = "HPND-sell-variant-MIT-disclaimer" licenseId HPND_sell_variant = "HPND-sell-variant"+licenseId HPND_UC_export_US = "HPND-UC-export-US" licenseId HPND_UC = "HPND-UC" licenseId HPND = "HPND" licenseId HTMLTIDY = "HTMLTIDY"@@ -1106,6 +1152,7 @@ licenseId MIT_enna = "MIT-enna" licenseId MIT_feh = "MIT-feh" licenseId MIT_Festival = "MIT-Festival"+licenseId MIT_Khronos_old = "MIT-Khronos-old" licenseId MIT_Modern_Variant = "MIT-Modern-Variant" licenseId MIT_open_group = "MIT-open-group" licenseId MIT_testregex = "MIT-testregex"@@ -1134,7 +1181,9 @@ licenseId NASA_1_3 = "NASA-1.3" licenseId Naumen = "Naumen" licenseId NBPL_1_0 = "NBPL-1.0"+licenseId NCBI_PD = "NCBI-PD" licenseId NCGL_UK_2_0 = "NCGL-UK-2.0"+licenseId NCL = "NCL" licenseId NCSA = "NCSA" licenseId Net_SNMP = "Net-SNMP" licenseId NetCDF = "NetCDF"@@ -1157,6 +1206,7 @@ licenseId NTP_0 = "NTP-0" licenseId NTP = "NTP" licenseId O_UDA_1_0 = "O-UDA-1.0"+licenseId OAR = "OAR" licenseId OCCT_PL = "OCCT-PL" licenseId OCLC_2_0 = "OCLC-2.0" licenseId ODbL_1_0 = "ODbL-1.0"@@ -1213,11 +1263,13 @@ licenseId PHP_3_01 = "PHP-3.01" licenseId PHP_3_0 = "PHP-3.0" licenseId Pixar = "Pixar"+licenseId Pkgconf = "pkgconf" licenseId Plexus = "Plexus" licenseId Pnmstitch = "pnmstitch" licenseId PolyForm_Noncommercial_1_0_0 = "PolyForm-Noncommercial-1.0.0" licenseId PolyForm_Small_Business_1_0_0 = "PolyForm-Small-Business-1.0.0" licenseId PostgreSQL = "PostgreSQL"+licenseId PPL = "PPL" licenseId PSF_2_0 = "PSF-2.0" licenseId Psfrag = "psfrag" licenseId Psutils = "psutils"@@ -1235,6 +1287,7 @@ licenseId RPSL_1_0 = "RPSL-1.0" licenseId RSA_MD = "RSA-MD" licenseId RSCPL = "RSCPL"+licenseId Ruby_pty = "Ruby-pty" licenseId Ruby = "Ruby" licenseId SAX_PD_2_0 = "SAX-PD-2.0" licenseId SAX_PD = "SAX-PD"@@ -1271,6 +1324,7 @@ licenseId SSLeay_standalone = "SSLeay-standalone" licenseId SSPL_1_0 = "SSPL-1.0" licenseId SugarCRM_1_1_3 = "SugarCRM-1.1.3"+licenseId Sun_PPP_2000 = "Sun-PPP-2000" licenseId Sun_PPP = "Sun-PPP" licenseId SunPro = "SunPro" licenseId SWL = "SWL"@@ -1281,6 +1335,7 @@ licenseId TCP_wrappers = "TCP-wrappers" licenseId TermReadKey = "TermReadKey" licenseId TGPPL_1_0 = "TGPPL-1.0"+licenseId Threeparttable = "threeparttable" licenseId TMate = "TMate" licenseId TORQUE_1_1 = "TORQUE-1.1" licenseId TOSL = "TOSL"@@ -1290,6 +1345,7 @@ licenseId TTYP0 = "TTYP0" licenseId TU_Berlin_1_0 = "TU-Berlin-1.0" licenseId TU_Berlin_2_0 = "TU-Berlin-2.0"+licenseId Ubuntu_font_1_0 = "Ubuntu-font-1.0" licenseId UCAR = "UCAR" licenseId UCL_1_0 = "UCL-1.0" licenseId Ulem = "ulem"@@ -1314,6 +1370,7 @@ licenseId Wsuipa = "Wsuipa" licenseId WTFPL = "WTFPL" licenseId X11_distribute_modifications_variant = "X11-distribute-modifications-variant"+licenseId X11_swapped = "X11-swapped" licenseId X11 = "X11" licenseId Xdebug_1_03 = "Xdebug-1.03" licenseId Xerox = "Xerox"@@ -1325,6 +1382,7 @@ licenseId Xnet = "Xnet" licenseId Xpp = "xpp" licenseId XSkat = "XSkat"+licenseId Xzoom = "xzoom" licenseId YPL_1_0 = "YPL-1.0" licenseId YPL_1_1 = "YPL-1.1" licenseId Zed = "Zed"@@ -1341,6 +1399,7 @@ -- | License name, e.g. @"GNU General Public License v2.0 only"@ licenseName :: LicenseId -> String licenseName NullBSD = "BSD Zero Clause License"+licenseName X3D_Slicer_1_0 = "3D Slicer License v1.0" licenseName AAL = "Attribution Assurance License" licenseName Abstyles = "Abstyles License" licenseName AdaCore_doc = "AdaCore Doc License"@@ -1361,12 +1420,14 @@ licenseName AGPL_3_0_only = "GNU Affero General Public License v3.0 only" licenseName AGPL_3_0_or_later = "GNU Affero General Public License v3.0 or later" licenseName Aladdin = "Aladdin Free Public License"+licenseName AMD_newlib = "AMD newlib License" licenseName AMDPLPA = "AMD's plpa_map.c License" licenseName AML_glslang = "AML glslang variant License" licenseName AML = "Apple MIT License" licenseName AMPAS = "Academy of Motion Picture Arts and Sciences BSD" licenseName ANTLR_PD_fallback = "ANTLR Software Rights Notice with license fallback" licenseName ANTLR_PD = "ANTLR Software Rights Notice"+licenseName Any_OSI = "Any OSI License" licenseName Apache_1_0 = "Apache License 1.0" licenseName Apache_1_1 = "Apache License 1.1" licenseName Apache_2_0 = "Apache License 2.0"@@ -1403,6 +1464,7 @@ licenseName BSD_2_Clause_FreeBSD = "BSD 2-Clause FreeBSD License" licenseName BSD_2_Clause_NetBSD = "BSD 2-Clause NetBSD License" licenseName BSD_2_Clause_Darwin = "BSD 2-Clause - Ian Darwin variant"+licenseName BSD_2_Clause_first_lines = "BSD 2-Clause - first lines requirement" licenseName BSD_2_Clause_Patent = "BSD-2-Clause Plus Patent License" licenseName BSD_2_Clause_Views = "BSD 2-Clause with views sentence" licenseName BSD_2_Clause = "BSD 2-Clause \"Simplified\" License"@@ -1442,6 +1504,7 @@ licenseName CAL_1_0 = "Cryptographic Autonomy License 1.0" licenseName Caldera_no_preamble = "Caldera License (without preamble)" licenseName Caldera = "Caldera License"+licenseName Catharon = "Catharon License" licenseName CATOSL_1_1 = "Computer Associates Trusted Open Source License 1.1" licenseName CC_BY_1_0 = "Creative Commons Attribution 1.0 Generic" licenseName CC_BY_2_0 = "Creative Commons Attribution 2.0 Generic"@@ -1538,11 +1601,14 @@ licenseName CUA_OPL_1_0 = "CUA Office Public License v1.0" licenseName Cube = "Cube License" licenseName Curl = "curl License"+licenseName Cve_tou = "Common Vulnerability Enumeration ToU License" licenseName D_FSL_1_0 = "Deutsche Freie Software Lizenz" licenseName DEC_3_Clause = "DEC 3-Clause License" licenseName Diffmark = "diffmark license" licenseName DL_DE_BY_2_0 = "Data licence Germany \8211 attribution \8211 version 2.0" licenseName DL_DE_ZERO_2_0 = "Data licence Germany \8211 zero \8211 version 2.0"+licenseName DocBook_Schema = "DocBook Schema License"+licenseName DocBook_XML = "DocBook XML License" licenseName DOC = "DOC License" licenseName Dotseqn = "Dotseqn License" licenseName DRL_1_0 = "Detection Rule License 1.0"@@ -1617,26 +1683,35 @@ licenseName Graphics_Gems = "Graphics Gems License" licenseName GSOAP_1_3b = "gSOAP Public License v1.3b" licenseName Gtkbook = "gtkbook License"+licenseName Gutmann = "Gutmann License" licenseName HaskellReport = "Haskell Language Report License" licenseName Hdparm = "hdparm License"+licenseName HIDAPI = "HIDAPI License" licenseName Hippocratic_2_1 = "Hippocratic License 2.1" licenseName HP_1986 = "Hewlett-Packard 1986 License" licenseName HP_1989 = "Hewlett-Packard 1989 License" licenseName HPND_DEC = "Historical Permission Notice and Disclaimer - DEC variant" licenseName HPND_doc_sell = "Historical Permission Notice and Disclaimer - documentation sell variant" licenseName HPND_doc = "Historical Permission Notice and Disclaimer - documentation variant"+licenseName HPND_export_US_acknowledgement = "HPND with US Government export control warning and acknowledgment" licenseName HPND_export_US_modify = "HPND with US Government export control warning and modification rqmt" licenseName HPND_export_US = "HPND with US Government export control warning"+licenseName HPND_export2_US = "HPND with US Government export control and 2 disclaimers" licenseName HPND_Fenneberg_Livingston = "Historical Permission Notice and Disclaimer - Fenneberg-Livingston variant" licenseName HPND_INRIA_IMAG = "Historical Permission Notice and Disclaimer    - INRIA-IMAG variant"+licenseName HPND_Intel = "Historical Permission Notice and Disclaimer - Intel variant" licenseName HPND_Kevlin_Henney = "Historical Permission Notice and Disclaimer - Kevlin Henney variant" licenseName HPND_Markus_Kuhn = "Historical Permission Notice and Disclaimer - Markus Kuhn variant"+licenseName HPND_merchantability_variant = "Historical Permission Notice and Disclaimer - merchantability variant" licenseName HPND_MIT_disclaimer = "Historical Permission Notice and Disclaimer with MIT disclaimer"+licenseName HPND_Netrek = "Historical Permission Notice and Disclaimer - Netrek variant" licenseName HPND_Pbmplus = "Historical Permission Notice and Disclaimer - Pbmplus variant" licenseName HPND_sell_MIT_disclaimer_xserver = "Historical Permission Notice and Disclaimer - sell xserver variant with MIT disclaimer" licenseName HPND_sell_regexpr = "Historical Permission Notice and Disclaimer - sell regexpr variant"+licenseName HPND_sell_variant_MIT_disclaimer_rev = "HPND sell variant with MIT disclaimer - reverse" licenseName HPND_sell_variant_MIT_disclaimer = "HPND sell variant with MIT disclaimer" licenseName HPND_sell_variant = "Historical Permission Notice and Disclaimer - sell variant"+licenseName HPND_UC_export_US = "Historical Permission Notice and Disclaimer - University of California, US export warning" licenseName HPND_UC = "Historical Permission Notice and Disclaimer - University of California variant" licenseName HPND = "Historical Permission Notice and Disclaimer" licenseName HTMLTIDY = "HTML Tidy License"@@ -1719,6 +1794,7 @@ licenseName MIT_enna = "enna License" licenseName MIT_feh = "feh License" licenseName MIT_Festival = "MIT Festival Variant"+licenseName MIT_Khronos_old = "MIT Khronos - old variant" licenseName MIT_Modern_Variant = "MIT License Modern Variant" licenseName MIT_open_group = "MIT Open Group variant" licenseName MIT_testregex = "MIT testregex Variant"@@ -1747,7 +1823,9 @@ licenseName NASA_1_3 = "NASA Open Source Agreement 1.3" licenseName Naumen = "Naumen Public License" licenseName NBPL_1_0 = "Net Boolean Public License v1"+licenseName NCBI_PD = "NCBI Public Domain Notice" licenseName NCGL_UK_2_0 = "Non-Commercial Government Licence"+licenseName NCL = "NCL Source Code License" licenseName NCSA = "University of Illinois/NCSA Open Source License" licenseName Net_SNMP = "Net-SNMP License" licenseName NetCDF = "NetCDF license"@@ -1770,6 +1848,7 @@ licenseName NTP_0 = "NTP No Attribution" licenseName NTP = "NTP License" licenseName O_UDA_1_0 = "Open Use of Data Agreement v1.0"+licenseName OAR = "OAR License" licenseName OCCT_PL = "Open CASCADE Technology Public License" licenseName OCLC_2_0 = "OCLC Research Public License 2.0" licenseName ODbL_1_0 = "Open Data Commons Open Database License v1.0"@@ -1826,11 +1905,13 @@ licenseName PHP_3_01 = "PHP License v3.01" licenseName PHP_3_0 = "PHP License v3.0" licenseName Pixar = "Pixar License"+licenseName Pkgconf = "pkgconf License" licenseName Plexus = "Plexus Classworlds License" licenseName Pnmstitch = "pnmstitch License" licenseName PolyForm_Noncommercial_1_0_0 = "PolyForm Noncommercial License 1.0.0" licenseName PolyForm_Small_Business_1_0_0 = "PolyForm Small Business License 1.0.0" licenseName PostgreSQL = "PostgreSQL License"+licenseName PPL = "Peer Production License" licenseName PSF_2_0 = "Python Software Foundation License 2.0" licenseName Psfrag = "psfrag License" licenseName Psutils = "psutils License"@@ -1848,6 +1929,7 @@ licenseName RPSL_1_0 = "RealNetworks Public Source License v1.0" licenseName RSA_MD = "RSA Message-Digest License" licenseName RSCPL = "Ricoh Source Code Public License"+licenseName Ruby_pty = "Ruby pty extension license" licenseName Ruby = "Ruby License" licenseName SAX_PD_2_0 = "Sax Public Domain Notice 2.0" licenseName SAX_PD = "Sax Public Domain Notice"@@ -1884,6 +1966,7 @@ licenseName SSLeay_standalone = "SSLeay License - standalone" licenseName SSPL_1_0 = "Server Side Public License, v 1" licenseName SugarCRM_1_1_3 = "SugarCRM Public License v1.1.3"+licenseName Sun_PPP_2000 = "Sun PPP License (2000)" licenseName Sun_PPP = "Sun PPP License" licenseName SunPro = "SunPro License" licenseName SWL = "Scheme Widget Library (SWL) Software License Agreement"@@ -1894,6 +1977,7 @@ licenseName TCP_wrappers = "TCP Wrappers License" licenseName TermReadKey = "TermReadKey License" licenseName TGPPL_1_0 = "Transitive Grace Period Public Licence 1.0"+licenseName Threeparttable = "threeparttable License" licenseName TMate = "TMate Open Source License" licenseName TORQUE_1_1 = "TORQUE v2.5+ Software License v1.1" licenseName TOSL = "Trusster Open Source License"@@ -1903,6 +1987,7 @@ licenseName TTYP0 = "TTYP0 License" licenseName TU_Berlin_1_0 = "Technische Universitaet Berlin License 1.0" licenseName TU_Berlin_2_0 = "Technische Universitaet Berlin License 2.0"+licenseName Ubuntu_font_1_0 = "Ubuntu Font Licence v1.0" licenseName UCAR = "UCAR License" licenseName UCL_1_0 = "Upstream Compatibility License v1.0" licenseName Ulem = "ulem License"@@ -1927,6 +2012,7 @@ licenseName Wsuipa = "Wsuipa License" licenseName WTFPL = "Do What The F*ck You Want To Public License" licenseName X11_distribute_modifications_variant = "X11 License Distribution Modification Variant"+licenseName X11_swapped = "X11 swapped final paragraphs" licenseName X11 = "X11 License" licenseName Xdebug_1_03 = "Xdebug License v 1.03" licenseName Xerox = "Xerox License"@@ -1938,6 +2024,7 @@ licenseName Xnet = "X.Net License" licenseName Xpp = "XPP License" licenseName XSkat = "XSkat License"+licenseName Xzoom = "xzoom License" licenseName YPL_1_0 = "Yahoo! Public License v1.0" licenseName YPL_1_1 = "Yahoo! Public License v1.1" licenseName Zed = "Zed License"@@ -2080,6 +2167,7 @@ licenseIsOsiApproved Unlicense = True licenseIsOsiApproved UPL_1_0 = True licenseIsOsiApproved VSL_1_0 = True+licenseIsOsiApproved W3C_20150513 = True licenseIsOsiApproved W3C = True licenseIsOsiApproved Watcom_1_0 = True licenseIsOsiApproved Xnet = True@@ -2218,6 +2306,7 @@     , BSD_2_Clause_FreeBSD     , BSD_2_Clause_NetBSD     , Bzip2_1_0_5+    , Net_SNMP     ]     ++ bulkOfLicenses licenseIdList LicenseListVersion_3_2 =@@ -2228,6 +2317,7 @@     , Bzip2_1_0_5     , Linux_OpenIB     , MIT_0+    , Net_SNMP     , ODC_By_1_0     , TU_Berlin_1_0     , TU_Berlin_2_0@@ -2252,6 +2342,7 @@     , Libpng_2_0     , Linux_OpenIB     , MIT_0+    , Net_SNMP     , ODC_By_1_0     , OGL_UK_1_0     , OGL_UK_2_0@@ -2295,6 +2386,7 @@     , MulanPSL_1_0     , MulanPSL_2_0     , NCGL_UK_2_0+    , Net_SNMP     , NTP_0     , O_UDA_1_0     , ODC_By_1_0@@ -2370,6 +2462,7 @@     , MulanPSL_1_0     , MulanPSL_2_0     , NCGL_UK_2_0+    , Net_SNMP     , NIST_PD_fallback     , NIST_PD     , NTP_0@@ -2483,6 +2576,7 @@     , MulanPSL_2_0     , NAIST_2003     , NCGL_UK_2_0+    , Net_SNMP     , NIST_PD_fallback     , NIST_PD     , NLOD_2_0@@ -2707,6 +2801,7 @@     , MulanPSL_2_0     , NAIST_2003     , NCGL_UK_2_0+    , Net_SNMP     , NICTA_1_0     , NIST_PD_fallback     , NIST_PD@@ -2790,6 +2885,306 @@     , Zeeff     ]     ++ bulkOfLicenses+licenseIdList LicenseListVersion_3_25 =+    [ X3D_Slicer_1_0+    , AdaCore_doc+    , Adobe_Display_PostScript+    , Adobe_Utopia+    , AGPL_1_0_only+    , AGPL_1_0_or_later+    , AMD_newlib+    , AML_glslang+    , ANTLR_PD_fallback+    , Any_OSI+    , App_s2p+    , Arphic_1999+    , ASWF_Digital_Assets_1_0+    , ASWF_Digital_Assets_1_1+    , Baekmuk+    , Bcrypt_Solar_Designer+    , Bitstream_Charter+    , Bitstream_Vera+    , Blessing+    , BlueOak_1_0_0+    , Boehm_GC+    , Brian_Gladman_2_Clause+    , Brian_Gladman_3_Clause+    , BSD_2_Clause_Darwin+    , BSD_2_Clause_first_lines+    , BSD_2_Clause_Views+    , BSD_3_Clause_acpica+    , BSD_3_Clause_flex+    , BSD_3_Clause_HP+    , BSD_3_Clause_Modification+    , BSD_3_Clause_No_Military_License+    , BSD_3_Clause_Open_MPI+    , BSD_3_Clause_Sun+    , BSD_4_Clause_Shortened+    , BSD_4_3RENO+    , BSD_4_3TAHOE+    , BSD_Advertising_Acknowledgement+    , BSD_Attribution_HPND_disclaimer+    , BSD_Inferno_Nettverk+    , BSD_Source_beginning_file+    , BSD_Systemics_W3Works+    , BSD_Systemics+    , BUSL_1_1+    , C_UDA_1_0+    , CAL_1_0_Combined_Work_Exception+    , CAL_1_0+    , Caldera_no_preamble+    , Catharon+    , CC_BY_2_5_AU+    , CC_BY_3_0_AT+    , CC_BY_3_0_AU+    , CC_BY_3_0_DE+    , CC_BY_3_0_IGO+    , CC_BY_3_0_NL+    , CC_BY_3_0_US+    , CC_BY_NC_3_0_DE+    , CC_BY_NC_ND_3_0_DE+    , CC_BY_NC_ND_3_0_IGO+    , CC_BY_NC_SA_2_0_DE+    , CC_BY_NC_SA_2_0_FR+    , CC_BY_NC_SA_2_0_UK+    , CC_BY_NC_SA_3_0_DE+    , CC_BY_NC_SA_3_0_IGO+    , CC_BY_ND_3_0_DE+    , CC_BY_SA_2_0_UK+    , CC_BY_SA_2_1_JP+    , CC_BY_SA_3_0_AT+    , CC_BY_SA_3_0_DE+    , CC_BY_SA_3_0_IGO+    , CC_PDDC+    , CDL_1_0+    , CDLA_Permissive_2_0+    , CERN_OHL_1_1+    , CERN_OHL_1_2+    , CERN_OHL_P_2_0+    , CERN_OHL_S_2_0+    , CERN_OHL_W_2_0+    , CFITSIO+    , Check_cvs+    , Checkmk+    , Clips+    , CMU_Mach_nodoc+    , CMU_Mach+    , COIL_1_0+    , Community_Spec_1_0+    , Copyleft_next_0_3_0+    , Copyleft_next_0_3_1+    , Cornell_Lossless_JPEG+    , Cronyx+    , Cve_tou+    , DEC_3_Clause+    , DL_DE_BY_2_0+    , DL_DE_ZERO_2_0+    , DocBook_Schema+    , DocBook_XML+    , DRL_1_0+    , DRL_1_1+    , Dtoa+    , Elastic_2_0+    , EPICS+    , Etalab_2_0+    , FBM+    , FDK_AAC+    , Ferguson_Twofish+    , FreeBSD_DOC+    , FSFAP_no_warranty_disclaimer+    , FSFULLRWD+    , Furuseth+    , Fwlw+    , GCR_docs+    , GD+    , GFDL_1_1_invariants_only+    , GFDL_1_1_invariants_or_later+    , GFDL_1_1_no_invariants_only+    , GFDL_1_1_no_invariants_or_later+    , GFDL_1_2_invariants_only+    , GFDL_1_2_invariants_or_later+    , GFDL_1_2_no_invariants_only+    , GFDL_1_2_no_invariants_or_later+    , GFDL_1_3_invariants_only+    , GFDL_1_3_invariants_or_later+    , GFDL_1_3_no_invariants_only+    , GFDL_1_3_no_invariants_or_later+    , GLWTPL+    , Graphics_Gems+    , Gtkbook+    , Gutmann+    , Hdparm+    , HIDAPI+    , Hippocratic_2_1+    , HP_1986+    , HP_1989+    , HPND_DEC+    , HPND_doc_sell+    , HPND_doc+    , HPND_export_US_acknowledgement+    , HPND_export_US_modify+    , HPND_export_US+    , HPND_export2_US+    , HPND_Fenneberg_Livingston+    , HPND_INRIA_IMAG+    , HPND_Intel+    , HPND_Kevlin_Henney+    , HPND_Markus_Kuhn+    , HPND_merchantability_variant+    , HPND_MIT_disclaimer+    , HPND_Netrek+    , HPND_Pbmplus+    , HPND_sell_MIT_disclaimer_xserver+    , HPND_sell_regexpr+    , HPND_sell_variant_MIT_disclaimer_rev+    , HPND_sell_variant_MIT_disclaimer+    , HPND_sell_variant+    , HPND_UC_export_US+    , HPND_UC+    , HTMLTIDY+    , IEC_Code_Components_EULA+    , IJG_short+    , Inner_Net_2_0+    , ISC_Veillard+    , Jam+    , JPL_image+    , JPNIC+    , Kastrup+    , Kazlib+    , Knuth_CTAN+    , Latex2e_translated_notice+    , Libpng_2_0+    , Libselinux_1_0+    , Libutil_David_Nugent+    , Linux_man_pages_1_para+    , Linux_man_pages_copyleft_2_para+    , Linux_man_pages_copyleft_var+    , Linux_man_pages_copyleft+    , Linux_OpenIB+    , LOOP+    , LPD_document+    , Lsof+    , Lucida_Bitmap_Fonts+    , LZMA_SDK_9_11_to_9_20+    , LZMA_SDK_9_22+    , Mackerras_3_Clause_acknowledgment+    , Mackerras_3_Clause+    , Magaz+    , Mailprio+    , Martin_Birgmeier+    , McPhee_slideshow+    , Metamail+    , Minpack+    , MIT_0+    , MIT_Festival+    , MIT_Khronos_old+    , MIT_Modern_Variant+    , MIT_open_group+    , MIT_testregex+    , MIT_Wu+    , MMIXware+    , MPEG_SSG+    , Mpi_permissive+    , Mplus+    , MS_LPL+    , MulanPSL_1_0+    , MulanPSL_2_0+    , NAIST_2003+    , NCBI_PD+    , NCGL_UK_2_0+    , NCL+    , NICTA_1_0+    , NIST_PD_fallback+    , NIST_PD+    , NIST_Software+    , NLOD_2_0+    , NTP_0+    , O_UDA_1_0+    , OAR+    , ODC_By_1_0+    , OFFIS+    , OFL_1_0_no_RFN+    , OFL_1_0_RFN+    , OFL_1_1_no_RFN+    , OFL_1_1_RFN+    , OGC_1_0+    , OGDL_Taiwan_1_0+    , OGL_Canada_2_0+    , OGL_UK_1_0+    , OGL_UK_2_0+    , OGL_UK_3_0+    , OLFL_1_3+    , OpenPBS_2_3+    , OpenSSL_standalone+    , OpenVision+    , OPL_UK_3_0+    , OPUBL_1_0+    , PADL+    , Parity_6_0_0+    , Parity_7_0_0+    , Pixar+    , Pkgconf+    , Pnmstitch+    , PolyForm_Noncommercial_1_0_0+    , PolyForm_Small_Business_1_0_0+    , PPL+    , PSF_2_0+    , Python_2_0_1+    , Python_ldap+    , QPL_1_0_INRIA_2004+    , Radvd+    , Ruby_pty+    , SAX_PD_2_0+    , SchemeReport+    , Sendmail_8_23+    , SGI_OpenGL+    , SGP4+    , SHL_0_51+    , SHL_0_5+    , SL+    , Snprintf+    , SoftSurfer+    , Soundex+    , Ssh_keyscan+    , SSH_OpenSSH+    , SSH_short+    , SSLeay_standalone+    , SSPL_1_0+    , Sun_PPP_2000+    , Sun_PPP+    , SunPro+    , Swrule+    , Symlinks+    , TAPR_OHL_1_0+    , TermReadKey+    , TGPPL_1_0+    , Threeparttable+    , TPDL+    , TPL_1_0+    , TTWL+    , TTYP0+    , TU_Berlin_1_0+    , TU_Berlin_2_0+    , Ubuntu_font_1_0+    , UCAR+    , UCL_1_0+    , Ulem+    , UMich_Merit+    , Unicode_3_0+    , UnixCrypt+    , URT_RLE+    , W3m+    , Widget_Workshop+    , X11_distribute_modifications_variant+    , X11_swapped+    , Xdebug_1_03+    , Xfig+    , Xkeyboard_config_Zinoviev+    , Xlock+    , Xzoom+    , Zeeff+    ]+    ++ bulkOfLicenses  -- | Create a 'LicenseId' from a 'String'. mkLicenseId :: LicenseListVersion -> String -> Maybe LicenseId@@ -2800,6 +3195,7 @@ 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)) $@@ -2829,6 +3225,10 @@ 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 =@@ -3050,7 +3450,6 @@     , Naumen     , NBPL_1_0     , NCSA-    , Net_SNMP     , NetCDF     , Newsletr     , NGPL
src/Distribution/SPDX/LicenseListVersion.hs view
@@ -14,9 +14,11 @@   | 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_25 cabalSpecVersionToSPDXListVersion CabalSpecV3_12 = LicenseListVersion_3_23 cabalSpecVersionToSPDXListVersion CabalSpecV3_8 = LicenseListVersion_3_16 cabalSpecVersionToSPDXListVersion CabalSpecV3_6 = LicenseListVersion_3_10
src/Distribution/System.hs view
@@ -46,10 +46,6 @@ import Distribution.Compat.Prelude hiding (Applicative (..)) import Prelude () -#if !MIN_VERSION_base(4,10,0)-import Control.Applicative (liftA2)-#endif- import Distribution.Utils.Generic (lowercase) import qualified System.Info (arch, os) 
src/Distribution/Types/BenchmarkInterface.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} @@ -9,6 +10,7 @@ import Prelude ()  import Distribution.Types.BenchmarkType+import Distribution.Utils.Path import Distribution.Version  -- | The benchmark interfaces that are currently defined.@@ -21,7 +23,7 @@     -- for success, non-zero for failure. The stdout and stderr     -- channels may be logged. Test tooling may pass command line     -- arguments and/or connect the stdin channel to the test.-    BenchmarkExeV10 Version FilePath+    BenchmarkExeV10 Version (RelativePath Source File)   | -- | A benchmark that does not conform to one of the above     -- interfaces for the given reason (e.g. unknown benchmark type).     BenchmarkUnsupported BenchmarkType
src/Distribution/Types/BuildInfo.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} @@ -11,6 +12,7 @@   , hcOptions   , hcProfOptions   , hcSharedOptions+  , hcProfSharedOptions   , hcStaticOptions   ) where @@ -65,20 +67,22 @@   -- ^ options for hsc2hs   , pkgconfigDepends :: [PkgconfigDependency]   -- ^ pkg-config packages that are used-  , frameworks :: [String]+  , frameworks :: [RelativePath Framework File]   -- ^ support frameworks for Mac OS X-  , extraFrameworkDirs :: [String]+  , extraFrameworkDirs :: [SymbolicPath Pkg (Dir Framework)]   -- ^ extra locations to find frameworks.-  , asmSources :: [FilePath]+  , asmSources :: [SymbolicPath Pkg File]   -- ^ Assembly files.-  , cmmSources :: [FilePath]+  , cmmSources :: [SymbolicPath Pkg File]   -- ^ C-- files.-  , cSources :: [FilePath]-  , cxxSources :: [FilePath]-  , jsSources :: [FilePath]-  , hsSourceDirs :: [SymbolicPath PackageDir SourceDir]+  , cSources :: [SymbolicPath Pkg File]+  , cxxSources :: [SymbolicPath Pkg File]+  , jsSources :: [SymbolicPath Pkg File]+  , hsSourceDirs :: [SymbolicPath Pkg (Dir Source)]   -- ^ where to look for the Haskell module hierarchy-  , otherModules :: [ModuleName]+  , -- NB: these are symbolic paths are not relative paths,+    -- because autogenerated modules might end up in an absolute path+    otherModules :: [ModuleName]   -- ^ non-exposed or non-main modules   , virtualModules :: [ModuleName]   -- ^ exposed modules that do not have a source file (e.g. @GHC.Prim@ from @ghc-prim@ package)@@ -117,19 +121,20 @@   -- ^ Hidden Flag. This set of strings will be appended to all /dynamic/   --   libraries when copying. This is particularly useful with the `rts` package,   --   where we want different dynamic flavours of the RTS library to be installed.-  , extraLibDirs :: [String]-  , extraLibDirsStatic :: [String]-  , includeDirs :: [FilePath]+  , extraLibDirs :: [SymbolicPath Pkg (Dir Lib)]+  , extraLibDirsStatic :: [SymbolicPath Pkg (Dir Lib)]+  , includeDirs :: [SymbolicPath Pkg (Dir Include)]   -- ^ directories to find .h files-  , includes :: [FilePath]+  , includes :: [SymbolicPath Include File]   -- ^ The .h files to be found in includeDirs-  , autogenIncludes :: [FilePath]+  , autogenIncludes :: [RelativePath Include File]   -- ^ The .h files to be generated (e.g. by @autoconf@)-  , installIncludes :: [FilePath]+  , installIncludes :: [RelativePath Include File]   -- ^ .h files to install with the package   , options :: PerCompilerFlavor [String]   , profOptions :: PerCompilerFlavor [String]   , sharedOptions :: PerCompilerFlavor [String]+  , profSharedOptions :: PerCompilerFlavor [String]   , staticOptions :: PerCompilerFlavor [String]   , customFieldsBI :: [(String, String)]   -- ^ Custom fields starting@@ -190,6 +195,7 @@       , options = mempty       , profOptions = mempty       , sharedOptions = mempty+      , profSharedOptions = mempty       , staticOptions = mempty       , customFieldsBI = []       , targetBuildDepends = []@@ -242,6 +248,7 @@       , options = combine options       , profOptions = combine profOptions       , sharedOptions = combine sharedOptions+      , profSharedOptions = combine profSharedOptions       , staticOptions = combine staticOptions       , customFieldsBI = combine customFieldsBI       , targetBuildDepends = combineNub targetBuildDepends@@ -291,6 +298,9 @@  hcSharedOptions :: CompilerFlavor -> BuildInfo -> [String] hcSharedOptions = lookupHcOptions sharedOptions++hcProfSharedOptions :: CompilerFlavor -> BuildInfo -> [String]+hcProfSharedOptions = lookupHcOptions profSharedOptions  hcStaticOptions :: CompilerFlavor -> BuildInfo -> [String] hcStaticOptions = lookupHcOptions staticOptions
src/Distribution/Types/BuildInfo/Lens.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE DataKinds #-}+ module Distribution.Types.BuildInfo.Lens   ( BuildInfo   , HasBuildInfo (..)@@ -69,35 +71,35 @@   pkgconfigDepends = buildInfo . pkgconfigDepends   {-# INLINE pkgconfigDepends #-} -  frameworks :: Lens' a [String]+  frameworks :: Lens' a [RelativePath Framework File]   frameworks = buildInfo . frameworks   {-# INLINE frameworks #-} -  extraFrameworkDirs :: Lens' a [String]+  extraFrameworkDirs :: Lens' a [SymbolicPath Pkg (Dir Framework)]   extraFrameworkDirs = buildInfo . extraFrameworkDirs   {-# INLINE extraFrameworkDirs #-} -  asmSources :: Lens' a [FilePath]+  asmSources :: Lens' a [SymbolicPath Pkg File]   asmSources = buildInfo . asmSources   {-# INLINE asmSources #-} -  cmmSources :: Lens' a [FilePath]+  cmmSources :: Lens' a [SymbolicPath Pkg File]   cmmSources = buildInfo . cmmSources   {-# INLINE cmmSources #-} -  cSources :: Lens' a [FilePath]+  cSources :: Lens' a [SymbolicPath Pkg File]   cSources = buildInfo . cSources   {-# INLINE cSources #-} -  cxxSources :: Lens' a [FilePath]+  cxxSources :: Lens' a [SymbolicPath Pkg File]   cxxSources = buildInfo . cxxSources   {-# INLINE cxxSources #-} -  jsSources :: Lens' a [FilePath]+  jsSources :: Lens' a [SymbolicPath Pkg File]   jsSources = buildInfo . jsSources   {-# INLINE jsSources #-} -  hsSourceDirs :: Lens' a [SymbolicPath PackageDir SourceDir]+  hsSourceDirs :: Lens' a [SymbolicPath Pkg (Dir Source)]   hsSourceDirs = buildInfo . hsSourceDirs   {-# INLINE hsSourceDirs #-} @@ -157,27 +159,27 @@   extraDynLibFlavours = buildInfo . extraDynLibFlavours   {-# INLINE extraDynLibFlavours #-} -  extraLibDirs :: Lens' a [String]+  extraLibDirs :: Lens' a [SymbolicPath Pkg (Dir Lib)]   extraLibDirs = buildInfo . extraLibDirs   {-# INLINE extraLibDirs #-} -  extraLibDirsStatic :: Lens' a [String]+  extraLibDirsStatic :: Lens' a [SymbolicPath Pkg (Dir Lib)]   extraLibDirsStatic = buildInfo . extraLibDirsStatic   {-# INLINE extraLibDirsStatic #-} -  includeDirs :: Lens' a [FilePath]+  includeDirs :: Lens' a [SymbolicPath Pkg (Dir Include)]   includeDirs = buildInfo . includeDirs   {-# INLINE includeDirs #-} -  includes :: Lens' a [FilePath]+  includes :: Lens' a [SymbolicPath Include File]   includes = buildInfo . includes   {-# INLINE includes #-} -  autogenIncludes :: Lens' a [FilePath]+  autogenIncludes :: Lens' a [RelativePath Include File]   autogenIncludes = buildInfo . autogenIncludes   {-# INLINE autogenIncludes #-} -  installIncludes :: Lens' a [FilePath]+  installIncludes :: Lens' a [RelativePath Include File]   installIncludes = buildInfo . installIncludes   {-# INLINE installIncludes #-} @@ -193,6 +195,10 @@   sharedOptions = buildInfo . sharedOptions   {-# INLINE sharedOptions #-} +  profSharedOptions :: Lens' a (PerCompilerFlavor [String])+  profSharedOptions = buildInfo . profSharedOptions+  {-# INLINE profSharedOptions #-}+   staticOptions :: Lens' a (PerCompilerFlavor [String])   staticOptions = buildInfo . staticOptions   {-# INLINE staticOptions #-}@@ -338,6 +344,9 @@    sharedOptions f s = fmap (\x -> s{T.sharedOptions = x}) (f (T.sharedOptions s))   {-# INLINE sharedOptions #-}++  profSharedOptions f s = fmap (\x -> s{T.profSharedOptions = x}) (f (T.profSharedOptions s))+  {-# INLINE profSharedOptions #-}    staticOptions f s = fmap (\x -> s{T.staticOptions = x}) (f (T.staticOptions s))   {-# INLINE staticOptions #-}
src/Distribution/Types/BuildType.hs view
@@ -29,6 +29,7 @@     Make   | -- | uses user-supplied @Setup.hs@ or @Setup.lhs@ (default)     Custom+  | Hooks   deriving (Generic, Show, Read, Eq, Ord, Typeable, Data)  instance Binary BuildType@@ -36,7 +37,7 @@ instance NFData BuildType where rnf = genericRnf  knownBuildTypes :: [BuildType]-knownBuildTypes = [Simple, Configure, Make, Custom]+knownBuildTypes = [Simple, Configure, Make, Custom, Hooks]  instance Pretty BuildType where   pretty = Disp.text . show@@ -49,6 +50,11 @@       "Configure" -> return Configure       "Custom" -> return Custom       "Make" -> return Make+      "Hooks" -> do+        v <- askCabalSpecVersion+        if v >= CabalSpecV3_14+          then return Hooks+          else fail "build-type: 'Hooks'. This feature requires cabal-version >= 3.14."       "Default" -> do         v <- askCabalSpecVersion         if v <= CabalSpecV1_18 -- oldest version needing this, based on hackage-tests
src/Distribution/Types/Dependency.hs view
@@ -33,10 +33,6 @@ -- -- /Invariant:/ package name does not appear as 'LSubLibName' in -- set of library names.------ /Note:/ 'Dependency' is not an instance of 'Ord', and so it cannot be used--- in 'Set' or as the key to a 'Map'.  For these and similar use cases see--- 'DependencyMap'. data Dependency   = -- | The set of libraries required from the package.     -- Only the selected libraries will be built.
src/Distribution/Types/Executable.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} @@ -15,12 +16,13 @@ import Distribution.Types.BuildInfo import Distribution.Types.ExecutableScope import Distribution.Types.UnqualComponentName+import Distribution.Utils.Path  import qualified Distribution.Types.BuildInfo.Lens as L  data Executable = Executable   { exeName :: UnqualComponentName-  , modulePath :: FilePath+  , modulePath :: RelativePath Source File   , exeScope :: ExecutableScope   , buildInfo :: BuildInfo   }@@ -34,14 +36,20 @@ instance NFData Executable where rnf = genericRnf  instance Monoid Executable where-  mempty = gmempty+  mempty =+    Executable+      { exeName = mempty+      , modulePath = unsafeMakeSymbolicPath ""+      , exeScope = mempty+      , buildInfo = mempty+      }   mappend = (<>)  instance Semigroup Executable where   a <> b =     Executable       { exeName = combineNames a b exeName "executable"-      , modulePath = combineNames a b modulePath "modulePath"+      , modulePath = unsafeMakeSymbolicPath $ combineNames a b (getSymbolicPath . modulePath) "modulePath"       , exeScope = combine exeScope       , buildInfo = combine buildInfo       }
src/Distribution/Types/Executable/Lens.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE DataKinds #-}+ module Distribution.Types.Executable.Lens   ( Executable   , module Distribution.Types.Executable.Lens@@ -11,6 +13,7 @@ import Distribution.Types.Executable (Executable) import Distribution.Types.ExecutableScope (ExecutableScope) import Distribution.Types.UnqualComponentName (UnqualComponentName)+import Distribution.Utils.Path  import qualified Distribution.Types.Executable as T @@ -18,7 +21,7 @@ exeName f s = fmap (\x -> s{T.exeName = x}) (f (T.exeName s)) {-# INLINE exeName #-} -modulePath :: Lens' Executable String+modulePath :: Lens' Executable (RelativePath Source File) modulePath f s = fmap (\x -> s{T.modulePath = x}) (f (T.modulePath s)) {-# INLINE modulePath #-} 
src/Distribution/Types/ForeignLib.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} @@ -26,6 +27,7 @@ import Distribution.Types.ForeignLibOption import Distribution.Types.ForeignLibType import Distribution.Types.UnqualComponentName+import Distribution.Utils.Path import Distribution.Version  import Data.Monoid@@ -53,7 +55,7 @@   -- current:revision:age versioning scheme.   , foreignLibVersionLinux :: Maybe Version   -- ^ Linux library version-  , foreignLibModDefFile :: [FilePath]+  , foreignLibModDefFile :: [RelativePath Source File]   -- ^ (Windows-specific) module definition files   --   -- This is a list rather than a maybe field so that we can flatten
src/Distribution/Types/ForeignLib/Lens.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE DataKinds #-}+ module Distribution.Types.ForeignLib.Lens   ( ForeignLib   , module Distribution.Types.ForeignLib.Lens@@ -12,6 +14,7 @@ import Distribution.Types.ForeignLibOption (ForeignLibOption) import Distribution.Types.ForeignLibType (ForeignLibType) import Distribution.Types.UnqualComponentName (UnqualComponentName)+import Distribution.Utils.Path import Distribution.Version (Version)  import qualified Distribution.Types.ForeignLib as T@@ -40,6 +43,6 @@ foreignLibVersionLinux f s = fmap (\x -> s{T.foreignLibVersionLinux = x}) (f (T.foreignLibVersionLinux s)) {-# INLINE foreignLibVersionLinux #-} -foreignLibModDefFile :: Lens' ForeignLib [FilePath]+foreignLibModDefFile :: Lens' ForeignLib [RelativePath Source File] foreignLibModDefFile f s = fmap (\x -> s{T.foreignLibModDefFile = x}) (f (T.foreignLibModDefFile s)) {-# INLINE foreignLibModDefFile #-}
src/Distribution/Types/PackageDescription.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleContexts #-}@@ -108,7 +109,7 @@   -- ^ The version of the Cabal spec that this package description uses.   , package :: PackageIdentifier   , licenseRaw :: Either SPDX.License License-  , licenseFiles :: [SymbolicPath PackageDir LicenseFile]+  , licenseFiles :: [RelativePath Pkg File]   , copyright :: !ShortText   , maintainer :: !ShortText   , author :: !ShortText@@ -141,11 +142,14 @@   , testSuites :: [TestSuite]   , benchmarks :: [Benchmark]   , -- files-    dataFiles :: [FilePath]-  , dataDir :: FilePath-  , extraSrcFiles :: [FilePath]-  , extraTmpFiles :: [FilePath]-  , extraDocFiles :: [FilePath]+    dataFiles :: [RelativePath DataDir File]+  -- ^ data file globs, relative to data directory+  , dataDir :: SymbolicPath Pkg (Dir DataDir)+  -- ^ data directory (may be absolute, or relative to package)+  , extraSrcFiles :: [RelativePath Pkg File]+  , extraTmpFiles :: [RelativePath Pkg File]+  , extraDocFiles :: [RelativePath Pkg File]+  , extraFiles :: [RelativePath Pkg File]   }   deriving (Generic, Show, Read, Eq, Ord, Typeable, Data) @@ -228,10 +232,11 @@     , testSuites = []     , benchmarks = []     , dataFiles = []-    , dataDir = "."+    , dataDir = sameDirectory     , extraSrcFiles = []     , extraTmpFiles = []     , extraDocFiles = []+    , extraFiles = []     }  -- ---------------------------------------------------------------------------@@ -488,6 +493,7 @@         a22         a23         a24+        a25       ) =       PackageDescription a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19         <$> (traverse . L.buildInfo) f x1 -- library@@ -501,3 +507,4 @@         <*> pure a22 -- extra src files         <*> pure a23 -- extra temp files         <*> pure a24 -- extra doc files+        <*> pure a25 -- extra files
src/Distribution/Types/PackageDescription/Lens.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DataKinds #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} @@ -31,7 +32,7 @@ import Distribution.Types.SourceRepo (SourceRepo) import Distribution.Types.TestSuite (TestSuite, testModules) import Distribution.Types.TestSuite.Lens (testBuildInfo, testName)-import Distribution.Utils.Path (LicenseFile, PackageDir, SymbolicPath)+import Distribution.Utils.Path import Distribution.Utils.ShortText (ShortText) import Distribution.Version (VersionRange) @@ -46,7 +47,7 @@ licenseRaw f s = fmap (\x -> s{T.licenseRaw = x}) (f (T.licenseRaw s)) {-# INLINE licenseRaw #-} -licenseFiles :: Lens' PackageDescription [SymbolicPath PackageDir LicenseFile]+licenseFiles :: Lens' PackageDescription [RelativePath Pkg File] licenseFiles f s = fmap (\x -> s{T.licenseFiles = x}) (f (T.licenseFiles s)) {-# INLINE licenseFiles #-} @@ -138,25 +139,29 @@ benchmarks f s = fmap (\x -> s{T.benchmarks = x}) (f (T.benchmarks s)) {-# INLINE benchmarks #-} -dataFiles :: Lens' PackageDescription [FilePath]+dataFiles :: Lens' PackageDescription [RelativePath DataDir File] dataFiles f s = fmap (\x -> s{T.dataFiles = x}) (f (T.dataFiles s)) {-# INLINE dataFiles #-} -dataDir :: Lens' PackageDescription FilePath+dataDir :: Lens' PackageDescription (SymbolicPath Pkg (Dir DataDir)) dataDir f s = fmap (\x -> s{T.dataDir = x}) (f (T.dataDir s)) {-# INLINE dataDir #-} -extraSrcFiles :: Lens' PackageDescription [String]+extraSrcFiles :: Lens' PackageDescription [RelativePath Pkg File] extraSrcFiles f s = fmap (\x -> s{T.extraSrcFiles = x}) (f (T.extraSrcFiles s)) {-# INLINE extraSrcFiles #-} -extraTmpFiles :: Lens' PackageDescription [String]+extraTmpFiles :: Lens' PackageDescription [RelativePath Pkg File] extraTmpFiles f s = fmap (\x -> s{T.extraTmpFiles = x}) (f (T.extraTmpFiles s)) {-# INLINE extraTmpFiles #-} -extraDocFiles :: Lens' PackageDescription [String]+extraDocFiles :: Lens' PackageDescription [RelativePath Pkg File] extraDocFiles f s = fmap (\x -> s{T.extraDocFiles = x}) (f (T.extraDocFiles s)) {-# INLINE extraDocFiles #-}++extraFiles :: Lens' PackageDescription [RelativePath Pkg File]+extraFiles f s = fmap (\x -> s{T.extraFiles = x}) (f (T.extraFiles s))+{-# INLINE extraFiles #-}  -- | @since 3.0.0.0 allLibraries :: Traversal' PackageDescription Library
src/Distribution/Types/TestSuiteInterface.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} @@ -10,6 +11,7 @@  import Distribution.ModuleName import Distribution.Types.TestType+import Distribution.Utils.Path import Distribution.Version  -- | The test suite interfaces that are currently defined.@@ -21,7 +23,7 @@     -- of an executable. It returns a zero exit code for success, non-zero for     -- failure. The stdout and stderr channels may be logged. Test tooling may     -- pass command line arguments and/or connect the stdin channel to the test.-    TestSuiteExeV10 Version FilePath+    TestSuiteExeV10 Version (RelativePath Source File)   | -- | Test interface \"detailed-0.9\". The test-suite takes the form of a     -- library containing a designated module that exports \"tests :: [Test]\".     TestSuiteLibV09 Version ModuleName
src/Distribution/Utils/Path.hs view
@@ -1,70 +1,383 @@+{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE FunctionalDependencies #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE RoleAnnotations #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}  module Distribution.Utils.Path-  ( -- * Symbolic path-    SymbolicPath+  ( -- * Symbolic path endpoints+    FileOrDir (..)+  , AllowAbsolute (..)++    -- ** Abstract directory locations+  , CWD+  , Pkg+  , Dist+  , Source+  , Include+  , Lib+  , Framework+  , Build+  , Artifacts+  , PkgDB+  , DataDir+  , Mix+  , Tix+  , Tmp+  , Response+  , PkgConf++    -- * Symbolic paths+  , RelativePath+  , SymbolicPath+  , AbsolutePath (..)+  , SymbolicPathX -- NB: constructor not exposed, to retain type safety.++    -- ** Symbolic path API   , getSymbolicPath+  , getAbsolutePath   , sameDirectory+  , makeRelativePathEx+  , makeSymbolicPath   , unsafeMakeSymbolicPath+  , coerceSymbolicPath+  , unsafeCoerceSymbolicPath+  , relativeSymbolicPath+  , symbolicPathRelative_maybe+  , interpretSymbolicPath+  , interpretSymbolicPathAbsolute -    -- * Path ends-  , PackageDir-  , SourceDir-  , LicenseFile-  , IsDir+    -- ** General filepath API+  , (</>)+  , (<.>)+  , takeDirectorySymbolicPath+  , dropExtensionsSymbolicPath+  , replaceExtensionSymbolicPath+  , normaliseSymbolicPath++    -- ** Working directory handling+  , interpretSymbolicPathCWD+  , absoluteWorkingDir+  , tryMakeRelative++    -- ** Module names+  , moduleNameSymbolicPath   ) where  import Distribution.Compat.Prelude import Prelude () +import Data.Coerce++import Distribution.ModuleName (ModuleName)+import qualified Distribution.ModuleName as ModuleName+  ( toFilePath+  ) import Distribution.Parsec import Distribution.Pretty import Distribution.Utils.Generic (isAbsoluteOnAnyPlatform)  import qualified Distribution.Compat.CharParsing as P --- import qualified Text.PrettyPrint                as Disp+import qualified System.Directory as Directory+import qualified System.FilePath as FilePath +import Data.Kind+  ( Type+  )+import GHC.Stack+  ( HasCallStack+  )+ -------------------------------------------------------------------------------  -- * SymbolicPath  ------------------------------------------------------------------------------- --- | Symbolic paths.+{- Note [Symbolic paths]+~~~~~~~~~~~~~~~~~~~~~~~~+We want functions within the Cabal library to support getting the working+directory from their arguments, rather than retrieving it from the current+directory, which depends on the the state of the current process+(via getCurrentDirectory).++With such a constraint, to ensure correctness we need to know, for each relative+filepath, whether it is relative to the passed in working directory or to the+current working directory. We achieve this with the following API:++  - newtype SymbolicPath from to+  - getSymbolicPath :: SymbolicPath from to -> FilePath+  - interpretSymbolicPath+      :: Maybe (SymbolicPath CWD (Dir from)) -> SymbolicPath from to -> FilePath++Note that, in the type @SymbolicPath from to@, @from@ is the name of a directory,+whereas @to@ is either @Dir toDir@ or @File@. For example, a source directory+typically has the type @SymbolicPath Pkg (Dir Source)@, while a source+file has a type such as @SymbolicPath "Source" File@.++Here, a symbolic path refers to an **uninterpreted** file path, i.e. any+passed in working directory **has not** been taken into account.+Whenever we see a symbolic path, it is a sign we must take into account this+working directory in some way.+Thus, whenever we interact with the file system, we do the following:++  - in a direct interaction (e.g. `doesFileExist`), we interpret the+    path relative to a working directory argument, e.g.++      doCheck :: Maybe (SymbolicPath CWD (Dir from))+              -> SymbolicPath from File+              -> Bool+      doCheck mbWorkDir file = doesFileExist $ interpretSymbolicPath mbWorkDir file++  - when invoking a sub-process (such as GHC), we ensure that the working directory+    of the sub-process is the same as the passed-in working directory, in which+    case we interpret the symbolic paths by using `interpretSymbolicPathCWD`:++      callGhc :: Maybe (SymbolicPath CWD (Dir Pkg))+              -> SymbolicPath (Dir Pkg) File+              -> IO ()+      callGhc mbWorkDir inputFile =+        runProgramInvocation $+          programInvocationCwd mbWorkDir ghcProg [interpretSymbolicPathCWD inputFile]++In practice, we often use:++  -- Interpret a symbolic path with respect to the working directory argument+  -- @'mbWorkDir' :: Maybe (SymbolicPath CWD (Dir Pkg))@.+  i :: SymbolicPath Pkg to -> FilePath+  i = interpretSymbolicPath mbWorkDir++  -- Interpret a symbolic path, provided that the current working directory+  -- is the package directory.+  u :: SymbolicPath Pkg to -> FilePath+  u = interpretSymbolicPathCWD++Note [Symbolic relative paths]+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+This module defines:++  data kind AllowAbsolute = AllowAbsolute | OnlyRelative+  data kind FileOrDir = File | Dir Symbol++  type SymbolicPathX :: AllowAbsolute -> Symbol -> FileOrDir -> Type+  newtype SymbolicPathX allowAbsolute from to = SymbolicPath FilePath++  type RelativePath = SymbolicPathX 'OnlyRelative+  type SymbolicPath = SymbolicPathX 'AllowAbsolute++A 'SymbolicPath' is thus a symbolic path that is allowed to be absolute, whereas+a 'RelativePath' is a symbolic path that is additionally required to be relative.++This distinction allows us to keep track of which filepaths must be kept+relative.+-}++-- | A type-level symbolic name, to an abstract file or directory+-- (e.g. the Cabal package directory).+data FileOrDir+  = -- | A file (with no further information).+    File+  | -- | The abstract name of a directory or category of directories,+    -- e.g. the package directory or a source directory.+    Dir Type++-- | Is this symbolic path allowed to be absolute, or must it be relative?+data AllowAbsolute+  = -- | The path may be absolute, or it may be relative.+    AllowAbsolute+  | -- | The path must be relative.+    OnlyRelative++-- | A symbolic path, possibly relative to an abstract location specified+-- by the @from@ type parameter. ----- These paths are system independent and relative.--- They are *symbolic* which means we cannot perform any 'IO'--- until we interpret them.-newtype SymbolicPath from to = SymbolicPath FilePath+-- They are *symbolic*, which means we cannot perform any 'IO'+-- until we interpret them (using e.g. 'interpretSymbolicPath').+newtype SymbolicPathX (allowAbsolute :: AllowAbsolute) (from :: Type) (to :: FileOrDir)+  = SymbolicPath FilePath   deriving (Generic, Show, Read, Eq, Ord, Typeable, Data) -instance Binary (SymbolicPath from to)-instance (Typeable from, Typeable to) => Structured (SymbolicPath from to)-instance NFData (SymbolicPath from to) where rnf = genericRnf+type role SymbolicPathX nominal nominal nominal --- | Extract underlying 'FilePath'.+-- | A symbolic relative path, relative to an abstract location specified+-- by the @from@ type parameter. ----- Avoid using this in new code.-getSymbolicPath :: SymbolicPath from to -> FilePath+-- They are *symbolic*, which means we cannot perform any 'IO'+-- until we interpret them (using e.g. 'interpretSymbolicPath').+type RelativePath = SymbolicPathX 'OnlyRelative++-- | A symbolic path which is allowed to be absolute.+--+-- They are *symbolic*, which means we cannot perform any 'IO'+-- until we interpret them (using e.g. 'interpretSymbolicPath').+type SymbolicPath = SymbolicPathX 'AllowAbsolute++newtype AbsolutePath (to :: FileOrDir) = AbsolutePath (forall from. SymbolicPath from to)++unsafeMakeAbsolutePath :: FilePath -> AbsolutePath to+unsafeMakeAbsolutePath fp = AbsolutePath (makeSymbolicPath fp)++instance Binary (SymbolicPathX allowAbsolute from to)+instance+  (Typeable allowAbsolute, Typeable from, Typeable to)+  => Structured (SymbolicPathX allowAbsolute from to)+instance NFData (SymbolicPathX allowAbsolute from to) where rnf = genericRnf++-- | Extract the 'FilePath' underlying a 'SymbolicPath' or 'RelativePath',+-- without interpreting it.+--+-- Use this function e.g. to validate the underlying filepath.+--+-- When interacting with the file system, you should instead use+-- 'interpretSymbolicPath' or 'interpretSymbolicPathCWD'.+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+getSymbolicPath :: SymbolicPathX allowAbsolute from to -> FilePath getSymbolicPath (SymbolicPath p) = p -sameDirectory :: (IsDir from, IsDir to) => SymbolicPath from to+-- | A symbolic path from a directory to itself.+sameDirectory :: SymbolicPathX allowAbsolute from (Dir to) sameDirectory = SymbolicPath "." --- | Make 'SymbolicPath' without performing any checks.-unsafeMakeSymbolicPath :: FilePath -> SymbolicPath from to-unsafeMakeSymbolicPath = SymbolicPath+-- | Make a 'RelativePath', ensuring the path is not absolute,+-- but performing no further checks.+makeRelativePathEx :: HasCallStack => FilePath -> RelativePath from to+makeRelativePathEx fp+  | isAbsoluteOnAnyPlatform fp =+      error $ "Cabal internal error: makeRelativePathEx: absolute path " ++ fp+  | otherwise =+      SymbolicPath fp +-- | Make a 'SymbolicPath', which may be relative or absolute.+makeSymbolicPath :: FilePath -> SymbolicPath from to+makeSymbolicPath fp = SymbolicPath fp++-- | Make a 'SymbolicPath' which may be relative or absolute,+-- without performing any checks.+--+-- Avoid using this function in new code.+unsafeMakeSymbolicPath :: FilePath -> SymbolicPathX allowAbs from to+unsafeMakeSymbolicPath fp = SymbolicPath fp++-- | Like 'System.FilePath.takeDirectory', for symbolic paths.+takeDirectorySymbolicPath :: SymbolicPathX allowAbsolute from File -> SymbolicPathX allowAbsolute from (Dir to')+takeDirectorySymbolicPath (SymbolicPath fp) = SymbolicPath (FilePath.takeDirectory fp)++-- | Like 'System.FilePath.dropExtensions', for symbolic paths.+dropExtensionsSymbolicPath :: SymbolicPathX allowAbsolute from File -> SymbolicPathX allowAbsolute from File+dropExtensionsSymbolicPath (SymbolicPath fp) = SymbolicPath (FilePath.dropExtensions fp)++-- | Like 'System.FilePath.replaceExtension', for symbolic paths.+replaceExtensionSymbolicPath :: SymbolicPathX allowAbsolute from File -> String -> SymbolicPathX allowAbsolute from File+replaceExtensionSymbolicPath (SymbolicPath fp) ext = SymbolicPath (FilePath.replaceExtension fp ext)++-- | Like 'System.FilePath.normalise', for symbolic paths.+normaliseSymbolicPath :: SymbolicPathX allowAbsolute from to -> SymbolicPathX allowAbsolute from to+normaliseSymbolicPath (SymbolicPath fp) = SymbolicPath (FilePath.normalise fp)++-- | Retrieve the relative symbolic path to a Haskell module.+moduleNameSymbolicPath :: ModuleName -> SymbolicPathX allowAbsolute Source File+moduleNameSymbolicPath modNm = SymbolicPath $ ModuleName.toFilePath modNm++-- | Interpret a symbolic path with respect to the given directory.+--+-- Use this function before directly interacting with the file system in order+-- to take into account a working directory argument.+--+-- NB: when invoking external programs (such as @GHC@), it is preferable to set+-- the working directory of the process and use 'interpretSymbolicPathCWD'+-- rather than calling this function, as this function will turn relative paths+-- into absolute paths if the working directory is an absolute path.+-- This can degrade error messages, or worse, break the behaviour entirely+-- (because the program might expect certain paths to be relative).+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+interpretSymbolicPath :: Maybe (SymbolicPath CWD (Dir from)) -> SymbolicPathX allowAbsolute from to -> FilePath+interpretSymbolicPath mbWorkDir (SymbolicPath p) =+  -- Note that this properly handles an absolute symbolic path,+  -- because if @q@ is absolute, then @p </> q = q@.+  maybe p ((</> p) . getSymbolicPath) mbWorkDir++-- | Interpret a symbolic path, **under the assumption that the working+-- directory is the package directory**.+--+-- Use 'interpretSymbolicPath' instead if you need to take into account a+-- working directory argument before directly interacting with the file system.+--+-- Use this function instead of 'interpretSymbolicPath' when invoking a child+-- process: set the working directory of the sub-process, and use this function,+-- e.g.:+--+-- > callGhc :: Maybe (SymbolicPath CWD (Dir Pkg))+-- >         -> SymbolicPath (Dir Pkg) File+-- >         -> IO ()+-- > callGhc mbWorkDir inputFile =+-- >   runProgramInvocation $+-- >     programInvocationCwd mbWorkDir ghcProg [interpretSymbolicPathCWD inputFile]+--+-- In this example, 'programInvocationCwd' sets the working directory, so it is+-- appropriate to use 'interpretSymbolicPathCWD' to provide its arguments.+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+interpretSymbolicPathCWD :: SymbolicPathX allowAbsolute from to -> FilePath+interpretSymbolicPathCWD (SymbolicPath p) = p++getAbsolutePath :: AbsolutePath to -> FilePath+getAbsolutePath (AbsolutePath p) = getSymbolicPath p++interpretSymbolicPathAbsolute :: AbsolutePath (Dir Pkg) -> SymbolicPathX allowAbsolute Pkg to -> FilePath+interpretSymbolicPathAbsolute (AbsolutePath p) sym = interpretSymbolicPath (Just p) sym++-- | Change what a symbolic path is pointing to.+coerceSymbolicPath :: SymbolicPathX allowAbsolute from to1 -> SymbolicPathX allowAbsolute from to2+coerceSymbolicPath = coerce++-- | Change both what a symbolic path is pointing from and pointing to.+--+-- Avoid using this in new code.+unsafeCoerceSymbolicPath :: SymbolicPathX allowAbsolute from1 to1 -> SymbolicPathX allowAbsolute from2 to2+unsafeCoerceSymbolicPath = coerce++-- | Weakening: convert a relative symbolic path to a symbolic path,+-- \"forgetting\" that it is relative.+relativeSymbolicPath :: RelativePath from to -> SymbolicPath from to+relativeSymbolicPath (SymbolicPath fp) = SymbolicPath fp++-- | Is this symbolic path a relative symbolic path?+symbolicPathRelative_maybe :: SymbolicPath from to -> Maybe (RelativePath from to)+symbolicPathRelative_maybe (SymbolicPath fp) =+  if isAbsoluteOnAnyPlatform fp+    then Nothing+    else Just $ SymbolicPath fp++-- | Absolute path to the current working directory.+absoluteWorkingDir :: Maybe (SymbolicPath CWD to) -> IO (AbsolutePath to)+absoluteWorkingDir Nothing = unsafeMakeAbsolutePath <$> Directory.getCurrentDirectory+absoluteWorkingDir (Just wd) = unsafeMakeAbsolutePath <$> Directory.makeAbsolute (getSymbolicPath wd)++-- | Try to make a symbolic path relative.+--+-- This function does nothing if the path is already relative.+--+-- NB: this function may fail to make the path relative.+tryMakeRelative :: Maybe (SymbolicPath CWD (Dir dir)) -> SymbolicPath dir to -> IO (SymbolicPath dir to)+tryMakeRelative mbWorkDir (SymbolicPath fp) = do+  AbsolutePath wd <- absoluteWorkingDir mbWorkDir+  return $ SymbolicPath (FilePath.makeRelative (getSymbolicPath wd) fp)+ -------------------------------------------------------------------------------  -- ** Parsing and pretty printing  ------------------------------------------------------------------------------- -instance Parsec (SymbolicPath from to) where+instance Parsec (SymbolicPathX 'OnlyRelative from to) where   parsec = do     token <- parsecToken     if null token@@ -72,9 +385,16 @@       else         if isAbsoluteOnAnyPlatform token           then P.unexpected "absolute FilePath"-          else return (SymbolicPath token) -- TODO: normalise+          else return (SymbolicPath token) -instance Pretty (SymbolicPath from to) where+instance Parsec (SymbolicPathX 'AllowAbsolute from to) where+  parsec = do+    token <- parsecToken+    if null token+      then P.unexpected "empty FilePath"+      else return (SymbolicPath token)++instance Pretty (SymbolicPathX allowAbsolute from to) where   pretty = showFilePath . getSymbolicPath  -------------------------------------------------------------------------------@@ -83,33 +403,131 @@  ------------------------------------------------------------------------------- --- TODO--- infixr 5 <//>+infixr 7 <.>++-- | Types that support 'System.FilePath.<.>'.+class FileLike p where+  -- | Like 'System.FilePath.<.>', but also supporting symbolic paths.+  (<.>) :: p -> String -> p++instance FileLike FilePath where+  (<.>) = (FilePath.<.>)++instance p ~ File => FileLike (SymbolicPathX allowAbsolute dir p) where+  SymbolicPath p <.> ext = SymbolicPath (p <.> ext)++infixr 5 </>++-- | Types that support 'System.FilePath.</>'.+class PathLike p q r | q r -> p, p r -> q, p q -> r where+  -- | Like 'System.FilePath.</>', but also supporting symbolic paths.+  (</>) :: p -> q -> r++instance PathLike FilePath FilePath FilePath where+  (</>) = (FilePath.</>)++-- | This instance ensures we don't accidentally discard a symbolic path+-- in a 'System.FilePath.</>' operation due to the second path being absolute. ----- -- | Path composition--- ----- -- We don't reuse @</>@ name to not clash with "System.FilePath".--- ----- (<//>) :: path a b -> path b c -> path a c+-- (Recall that @a </> b = b@ whenever @b@ is absolute.)+instance+  (b1 ~ 'Dir b2, a3 ~ a1, c2 ~ c3, midAbsolute ~ OnlyRelative)+  => PathLike+      (SymbolicPathX allowAbsolute a1 b1)+      (SymbolicPathX midAbsolute b2 c2)+      (SymbolicPathX allowAbsolute a3 c3)+  where+  SymbolicPath p1 </> SymbolicPath p2 = SymbolicPath (p1 </> p2) --------------------------------------------------------------------------------+instance+  (b1 ~ 'Dir b2, c2 ~ c3, midAbsolute ~ OnlyRelative)+  => PathLike+      (AbsolutePath b1)+      (SymbolicPathX midAbsolute b2 c2)+      (AbsolutePath c3)+  where+  AbsolutePath (SymbolicPath p1) </> SymbolicPath p2 =+    unsafeMakeAbsolutePath (p1 </> p2) --- * Path ends+--------------------------------------------------------------------------------+-- Abstract directory locations. --------------------------------------------------------------------------------+-- | Abstract directory: current working directory.+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+data CWD --- | Class telling that index is for directories.-class IsDir dir+-- | Abstract directory: package directory (e.g. a directory containing the @.cabal@ file).+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+data Pkg -data PackageDir deriving (Typeable)-data SourceDir deriving (Typeable)+-- | Abstract directory: dist directory (e.g. @dist-newstyle@).+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+data Dist -data LicenseFile deriving (Typeable)+-- | Abstract directory: source directory (a search directory for source files).+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+data Source --- These instances needs to be derived standalone at least on GHC-7.6-deriving instance Data PackageDir-deriving instance Data SourceDir-deriving instance Data LicenseFile+-- | Abstract directory: include directory (a search directory for CPP includes like header files, e.g. with @ghc -I@).+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+data Include -instance IsDir PackageDir-instance IsDir SourceDir+-- | Abstract directory: search directory for extra libraries.+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+data Lib++-- | Abstract directory: MacOS framework directory.+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+data Framework++-- | Abstract directory: build directory.+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+data Build++-- | Abstract directory: directory for build artifacts, such as documentation or @.hie@ files.+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+data Artifacts++-- | Abstract directory: package database directory.+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+data PkgDB++-- | Abstract directory: data files directory.+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+data DataDir++-- | Abstract directory: directory for HPC @.mix@ files.+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+data Mix++-- | Abstract directory: directory for HPC @.tix@ files.+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+data Tix++-- | Abstract directory: a temporary directory.+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+data Tmp++-- | Abstract directory: directory for response files.+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+data Response++-- | Abstract directory: directory for pkg-config files.+--+-- See Note [Symbolic paths] in Distribution.Utils.Path.+data PkgConf
src/Distribution/Utils/Structured.hs view
@@ -5,6 +5,7 @@ {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} @@ -106,8 +107,8 @@ #endif  import Data.Kind (Type)+import Data.Typeable (TypeRep, Typeable, typeRep) -import Distribution.Compat.Typeable (TypeRep, Typeable, typeRep) import Distribution.Utils.MD5  import Data.Monoid (mconcat)@@ -418,12 +419,42 @@ instance Structured a => Structured [a] where structure = containerStructure instance Structured a => Structured (NonEmpty a) where structure = containerStructure -instance (Structured a1, Structured a2) => Structured (a1, a2)-instance (Structured a1, Structured a2, Structured a3) => Structured (a1, a2, a3)-instance (Structured a1, Structured a2, Structured a3, Structured a4) => Structured (a1, a2, a3, a4)-instance (Structured a1, Structured a2, Structured a3, Structured a4, Structured a5) => Structured (a1, a2, a3, a4, a5)-instance (Structured a1, Structured a2, Structured a3, Structured a4, Structured a5, Structured a6) => Structured (a1, a2, a3, a4, a5, a6)-instance (Structured a1, Structured a2, Structured a3, Structured a4, Structured a5, Structured a6, Structured a7) => Structured (a1, a2, a3, a4, a5, a6, a7)+-- These instances are defined directly because the generic names for tuples changed+-- in 9.6 (https://gitlab.haskell.org/ghc/ghc/-/issues/24291).+--+-- By defining our own instances the STuple2 identifier will be used in the hash and+-- hence the same on all GHC versions.++data STuple2 a b = STuple2 a b deriving (Generic)+data STuple3 a b c = STuple3 a b c deriving (Generic)+data STuple4 a b c d = STuple4 a b c d deriving (Generic)+data STuple5 a b c d e = STuple5 a b c d e deriving (Generic)+data STuple6 a b c d e f = STuple6 a b c d e f deriving (Generic)+data STuple7 a b c d e f g = STuple7 a b c d e f g deriving (Generic)++instance (Structured a1, Structured a2) => Structured (STuple2 a1 a2)+instance (Structured a1, Structured a2) => Structured (a1, a2) where+  structure Proxy = structure @(STuple2 a1 a2) Proxy++instance (Structured a1, Structured a2, Structured a3) => Structured (STuple3 a1 a2 a3)+instance (Structured a1, Structured a2, Structured a3) => Structured (a1, a2, a3) where+  structure Proxy = structure @(STuple3 a1 a2 a3) Proxy++instance (Structured a1, Structured a2, Structured a3, Structured a4) => Structured (STuple4 a1 a2 a3 a4)+instance (Structured a1, Structured a2, Structured a3, Structured a4) => Structured (a1, a2, a3, a4) where+  structure Proxy = structure @(STuple4 a1 a2 a3 a4) Proxy++instance (Structured a1, Structured a2, Structured a3, Structured a4, Structured a5) => Structured (STuple5 a1 a2 a3 a4 a5)+instance (Structured a1, Structured a2, Structured a3, Structured a4, Structured a5) => Structured (a1, a2, a3, a4, a5) where+  structure Proxy = structure @(STuple5 a1 a2 a3 a4 a5) Proxy++instance (Structured a1, Structured a2, Structured a3, Structured a4, Structured a5, Structured a6) => Structured (STuple6 a1 a2 a3 a4 a5 a6)+instance (Structured a1, Structured a2, Structured a3, Structured a4, Structured a5, Structured a6) => Structured (a1, a2, a3, a4, a5, a6) where+  structure Proxy = structure @(STuple6 a1 a2 a3 a4 a5 a6) Proxy++instance (Structured a1, Structured a2, Structured a3, Structured a4, Structured a5, Structured a6, Structured a7) => Structured (STuple7 a1 a2 a3 a4 a5 a6 a7)+instance (Structured a1, Structured a2, Structured a3, Structured a4, Structured a5, Structured a6, Structured a7) => Structured (a1, a2, a3, a4, a5, a6, a7) where+  structure Proxy = structure @(STuple7 a1 a2 a3 a4 a5 a6 a7) Proxy  instance Structured BS.ByteString where structure = nominalStructure instance Structured LBS.ByteString where structure = nominalStructure
src/Language/Haskell/Extension.hs view
@@ -303,6 +303,9 @@   | -- | Allow default instantiation of polymorphic types in more     -- situations.     ExtendedDefaultRules+  | -- | Allow @default@ declarations to explicitly name the class and+    -- be exported.+    NamedDefaults   | -- | Enable unboxed tuples.     UnboxedTuples   | -- | Enable @deriving@ for classes 'Data.Typeable.Typeable' and@@ -548,6 +551,11 @@   | -- | Allow the use of built-in syntax for list, tuple and sum type constructors     -- rather than being exclusive to data constructors.     ListTuplePuns+  | -- | Support multiline strings.+    MultilineStrings+  | -- | Allow use of or-pattern syntax, condensing multiple patterns+    -- into a single one.+    OrPatterns   deriving (Generic, Show, Read, Eq, Ord, Enum, Bounded, Typeable, Data)  instance Binary KnownExtension