packages feed

hackport-0.8.2.0: hackport.cabal

cabal-version: 3.0
name:          hackport
version:       0.8.2.0
license:       GPL-3.0-or-later
license-file:  LICENSE
author:        Henning Günther, Duncan Coutts, Lennart Kolmodin
maintainer:    Gentoo Haskell team <haskell@gentoo.org>
copyright:     Copyright 1999-2023 Gentoo Authors
category:      Distribution
synopsis:      Hackage and Portage integration tool
homepage:      https://github.com/gentoo-haskell/hackport#readme
description:
  A command line tool to manage an overlay of Gentoo ebuilds
  that are generated from a hackage repo of Cabal packages.

tested-with:
  , GHC == 8.8.4
  , GHC == 8.10.7
  , GHC == 9.0.2
  , GHC == 9.2.4

source-repository head
  type:     git
  location: git://github.com/gentoo-haskell/hackport.git

flag cabal-v1
  description: Build for cabal-v1 (Setup.hs/gentoo-haskell) compatibility
  manual:      True
  default:     False

flag gentoo-tests
  description: Build tests that require a running Gentoo system
  manual:      True
  default:     False

flag pedantic
  description: Enable -Werror
  default:     False
  manual:      True

flag profile
  description: Enable profiling flags
  default:     False
  manual:      True

-- Turn off all warnings (for external libs and doctests-v2)
common no-warnings
  ghc-options: -Wno-default -Wno-incomplete-uni-patterns

common warnings
  ghc-options:
    -Wall

    -- ghc-9.2 turns this on for -Wall, so let's enable it to be consistent
    -- across ghc versions
    -Wincomplete-uni-patterns

  if flag(pedantic)
    ghc-options: -Werror

-------------------------------------------------------------------------------
-- NOTE: The lists of modules for external libraries have optimized for the
-- smallest build footprint possible. You may need to uncomment modules as new
-- features are added to hackport.
-------------------------------------------------------------------------------

library hackport-external-libs-Cabal-syntax
  import:           no-warnings
  default-language: Haskell2010
  hs-source-dirs:   cabal/Cabal-syntax/src
  build-depends:
    , array         >=0.4.0.1
    , array         >=0.4.0.1
    , base          >=4.6      && <5
    , binary        >=0.7
    , bytestring    >=0.10.0.0
    , containers    >=0.5.0.0
    , deepseq       >=1.3.0.1
    , directory     >=1.2
    , filepath      >=1.3.0.1
    , mtl           >=2.1
    , parsec        >=3.1.13.0
    , pretty        >=1.1.1
    , text          >=1.2.3.0
    , time          >=1.4.0.1
    , transformers  >=0.4.1.0
    , unix          >=2.6.0.0

  exposed-modules:
    Distribution.Backpack
    Distribution.CabalSpecVersion
    Distribution.Compat.Binary
    Distribution.Compat.CharParsing
    Distribution.Compat.DList
    Distribution.Compat.Exception
    Distribution.Compat.Graph
    Distribution.Compat.Lens
    Distribution.Compat.MonadFail
    Distribution.Compat.Newtype
    Distribution.Compat.NonEmptySet
    Distribution.Compat.Parsing
    Distribution.Compat.Prelude
    Distribution.Compat.Semigroup
    Distribution.Compat.Typeable
    Distribution.Compiler
    Distribution.FieldGrammar
    Distribution.FieldGrammar.Class
    Distribution.FieldGrammar.FieldDescrs
    Distribution.FieldGrammar.Newtypes
    Distribution.FieldGrammar.Parsec
    Distribution.FieldGrammar.Pretty
    Distribution.Fields
    Distribution.Fields.ConfVar
    Distribution.Fields.Field
    Distribution.Fields.Lexer
    Distribution.Fields.LexerMonad
    Distribution.Fields.ParseResult
    Distribution.Fields.Parser
    Distribution.Fields.Pretty
    Distribution.InstalledPackageInfo
    Distribution.License
    Distribution.ModuleName
    Distribution.Package
    Distribution.PackageDescription
    Distribution.PackageDescription.Configuration
    Distribution.PackageDescription.FieldGrammar
    Distribution.PackageDescription.Parsec
    Distribution.PackageDescription.PrettyPrint
    Distribution.PackageDescription.Quirks
    Distribution.PackageDescription.Utils
    Distribution.Parsec
    Distribution.Parsec.Error
    Distribution.Parsec.FieldLineStream
    Distribution.Parsec.Position
    Distribution.Parsec.Warning
    Distribution.Pretty
    Distribution.SPDX
    Distribution.SPDX.License
    Distribution.SPDX.LicenseExceptionId
    Distribution.SPDX.LicenseExpression
    Distribution.SPDX.LicenseId
    Distribution.SPDX.LicenseListVersion
    Distribution.SPDX.LicenseReference
    Distribution.System
    Distribution.Text
    Distribution.Types.AbiDependency
    Distribution.Types.AbiHash
    Distribution.Types.Benchmark
    Distribution.Types.Benchmark.Lens
    Distribution.Types.BenchmarkInterface
    Distribution.Types.BenchmarkType
    Distribution.Types.BuildInfo
    Distribution.Types.BuildInfo.Lens
    Distribution.Types.BuildType
    Distribution.Types.Component
    Distribution.Types.ComponentId
    Distribution.Types.ComponentName
    Distribution.Types.ComponentRequestedSpec
    Distribution.Types.CondTree
    Distribution.Types.Condition
    Distribution.Types.ConfVar
    Distribution.Types.Dependency
    Distribution.Types.DependencyMap
    Distribution.Types.ExeDependency
    Distribution.Types.Executable
    Distribution.Types.Executable.Lens
    Distribution.Types.ExecutableScope
    Distribution.Types.ExposedModule
    Distribution.Types.Flag
    Distribution.Types.ForeignLib
    Distribution.Types.ForeignLib.Lens
    Distribution.Types.ForeignLibOption
    Distribution.Types.ForeignLibType
    Distribution.Types.GenericPackageDescription
    Distribution.Types.GenericPackageDescription.Lens
    Distribution.Types.HookedBuildInfo
    Distribution.Types.IncludeRenaming
    Distribution.Types.InstalledPackageInfo
    Distribution.Types.InstalledPackageInfo.FieldGrammar
    Distribution.Types.InstalledPackageInfo.Lens
    Distribution.Types.LegacyExeDependency
    Distribution.Types.Lens
    Distribution.Types.Library
    Distribution.Types.Library.Lens
    Distribution.Types.LibraryName
    Distribution.Types.LibraryVisibility
    Distribution.Types.Mixin
    Distribution.Types.Module
    Distribution.Types.ModuleReexport
    Distribution.Types.ModuleRenaming
    Distribution.Types.MungedPackageId
    Distribution.Types.MungedPackageName
    Distribution.Types.PackageDescription
    Distribution.Types.PackageDescription.Lens
    Distribution.Types.PackageId
    Distribution.Types.PackageId.Lens
    Distribution.Types.PackageName
    Distribution.Types.PackageVersionConstraint
    Distribution.Types.PkgconfigDependency
    Distribution.Types.PkgconfigName
    Distribution.Types.PkgconfigVersion
    Distribution.Types.PkgconfigVersionRange
    Distribution.Types.SetupBuildInfo
    Distribution.Types.SetupBuildInfo.Lens
    Distribution.Types.SourceRepo
    Distribution.Types.SourceRepo.Lens
    Distribution.Types.TestSuite
    Distribution.Types.TestSuite.Lens
    Distribution.Types.TestSuiteInterface
    Distribution.Types.TestType
    Distribution.Types.UnitId
    Distribution.Types.UnqualComponentName
    Distribution.Types.Version
    Distribution.Types.VersionInterval
--     Distribution.Types.VersionInterval.Legacy
    Distribution.Types.VersionRange
    Distribution.Types.VersionRange.Internal
    Distribution.Utils.Base62
    Distribution.Utils.Generic
    Distribution.Utils.MD5
    Distribution.Utils.Path
    Distribution.Utils.ShortText
    Distribution.Utils.String
    Distribution.Utils.Structured
    Distribution.Version
    Language.Haskell.Extension

  other-extensions:
    BangPatterns
    CPP
    DefaultSignatures
    DeriveDataTypeable
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveTraversable
    ExistentialQuantification
    FlexibleContexts
    FlexibleInstances
    GeneralizedNewtypeDeriving
    ImplicitParams
    KindSignatures
    NondecreasingIndentation
    OverloadedStrings
    PatternSynonyms
    RankNTypes
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    Trustworthy
    TypeFamilies
    TypeOperators
    TypeSynonymInstances
    UndecidableInstances

library hackport-external-libs-Cabal
  import:           no-warnings
  default-language: Haskell2010
  hs-source-dirs:   cabal cabal/Cabal/src
  build-depends:
    , hackport-external-libs-Cabal-syntax
    , array         >=0.4.0.1
    , base          >=4.6      && <5
    , bytestring    >=0.10.0.0
    , containers    >=0.5.0.0
    , deepseq       >=1.3.0.1
    , directory     >=1.2
    , filepath      >=1.3.0.1
    , mtl           >=2.1
    , parsec        >=3.1.13.0
    , pretty        >=1.1.1
    , process       >=1.2.1.0
    , text          >=1.2.3.0
    , time          >=1.4.0.1
    , transformers  >=0.4.1.0
    , unix          >=2.6.0.0

  exposed-modules:
    Distribution.Backpack.ComponentsGraph
    Distribution.Backpack.Configure
    Distribution.Backpack.ConfiguredComponent
    Distribution.Backpack.DescribeUnitId
    Distribution.Backpack.FullUnitId
    Distribution.Backpack.LinkedComponent
    Distribution.Backpack.ModSubst
    Distribution.Backpack.ModuleShape
    Distribution.Backpack.PreModuleShape
--     Distribution.Compat.CreatePipe
    Distribution.Compat.Directory
    Distribution.Compat.Environment
    Distribution.Compat.FilePath
    Distribution.Compat.Internal.TempFile
    Distribution.Compat.Prelude.Internal
    Distribution.Compat.Process
    Distribution.Compat.ResponseFile
    Distribution.Compat.Stack
    Distribution.Compat.Time
    Distribution.PackageDescription.Check
    Distribution.Make
    Distribution.ReadE
    Distribution.Simple
    Distribution.Simple.Bench
    Distribution.Simple.Build
    Distribution.Simple.Build.Macros
    Distribution.Simple.Build.PathsModule
    Distribution.Simple.BuildPaths
    Distribution.Simple.BuildTarget
    Distribution.Simple.BuildToolDepends
    Distribution.Simple.CCompiler
    Distribution.Simple.Command
    Distribution.Simple.Compiler
    Distribution.Simple.Configure
    Distribution.Simple.Flag
    Distribution.Simple.GHC
    Distribution.Simple.GHCJS
    Distribution.Simple.Glob
    Distribution.Simple.Haddock
    Distribution.Simple.HaskellSuite
    Distribution.Simple.Hpc
    Distribution.Simple.Install
    Distribution.Simple.InstallDirs
    Distribution.Simple.InstallDirs.Internal
    Distribution.Simple.LocalBuildInfo
    Distribution.Simple.PackageDescription
    Distribution.Simple.PackageIndex
    Distribution.Simple.PreProcess
    Distribution.Simple.PreProcess.Unlit
    Distribution.Simple.Program
    Distribution.Simple.Program.Ar
    Distribution.Simple.Program.Builtin
    Distribution.Simple.Program.Db
    Distribution.Simple.Program.Find
    Distribution.Simple.Program.GHC
    Distribution.Simple.Program.HcPkg
    Distribution.Simple.Program.Hpc
    Distribution.Simple.Program.Internal
    Distribution.Simple.Program.Ld
    Distribution.Simple.Program.ResponseFile
    Distribution.Simple.Program.Run
    Distribution.Simple.Program.Script
    Distribution.Simple.Program.Strip
    Distribution.Simple.Program.Types
    Distribution.Simple.Register
    Distribution.Simple.Setup
    Distribution.Simple.ShowBuildInfo
    Distribution.Simple.SrcDist
    Distribution.Simple.Test
    Distribution.Simple.Test.ExeV10
    Distribution.Simple.Test.LibV09
    Distribution.Simple.Test.Log
    Distribution.Simple.UHC
    Distribution.Simple.UserHooks
    Distribution.Simple.Utils
    Distribution.TestSuite
    Distribution.Types.AnnotatedId
    Distribution.Types.ComponentInclude
    Distribution.Types.ComponentLocalBuildInfo
    Distribution.Types.DumpBuildInfo
    Distribution.Types.GivenComponent
    Distribution.Types.LocalBuildInfo
    Distribution.Types.PackageName.Magic
    Distribution.Types.TargetInfo
    Distribution.Utils.IOData
    Distribution.Utils.Json
    Distribution.Utils.LogProgress
    Distribution.Utils.MapAccum
    Distribution.Utils.NubList
    Distribution.Utils.Progress
    Distribution.Verbosity
    Distribution.Verbosity.Internal

  other-modules:
    Distribution.Backpack.Id
    Distribution.Backpack.MixLink
    Distribution.Backpack.ModuleScope
    Distribution.Backpack.PreExistingComponent
    Distribution.Backpack.ReadyComponent
    Distribution.Backpack.UnifyM
    Distribution.Compat.Async
    Distribution.Compat.CopyFile
    Distribution.Compat.GetShortPathName
--     Distribution.Compat.SnocList
    Distribution.GetOpt
    Distribution.Lex
    Distribution.Simple.Build.Macros.Z
    Distribution.Simple.Build.PathsModule.Z
    Distribution.Simple.GHC.EnvironmentParser
    Distribution.Simple.GHC.Internal
    Distribution.Simple.GHC.ImplInfo
    Distribution.Utils.UnionFind
    Distribution.ZinzaPrelude
    Paths_Cabal

  other-extensions:
    BangPatterns
    CPP
    DefaultSignatures
    DeriveDataTypeable
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveTraversable
    ExistentialQuantification
    FlexibleContexts
    FlexibleInstances
    GeneralizedNewtypeDeriving
    ImplicitParams
    KindSignatures
    LambdaCase
    NondecreasingIndentation
    OverloadedStrings
    PatternSynonyms
    RankNTypes
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    Trustworthy
    TypeFamilies
    TypeOperators
    TypeSynonymInstances
    UndecidableInstances

library hackport-external-libs-hackage-security
  import:             no-warnings
  default-language:   Haskell2010
  hs-source-dirs:     hackage-security/hackage-security/src
  build-depends:
    , hackport-external-libs-Cabal-syntax
    , base                          >=4.5
    , base16-bytestring             >=0.1.1
    , base64-bytestring             >=1.0
    , bytestring                    >=0.9
    , containers                    >=0.4
    , cryptohash-sha256             >=0.11
    , directory                     >=1.2
    , ed25519                       >=0.0
    , filepath                      >=1.2
    , ghc-prim
    , lukko                         >=0.1
    , mtl                           >=2.2
    , network                       >=3.0
    , network-uri                   >=2.6
    , parsec                        >=3.1
    , pretty                        >=1.0
    , tar                           >=0.5
    , template-haskell              >=2.7
    , time                          >=1.2
    , transformers                  >=0.3
    , zlib                          >=0.5

  exposed-modules:
    Hackage.Security.Client
    Hackage.Security.Client.Formats
    Hackage.Security.Client.Repository
    Hackage.Security.Client.Repository.Cache
    Hackage.Security.Client.Repository.HttpLib
    Hackage.Security.Client.Repository.Local
    Hackage.Security.Client.Repository.Remote
    Hackage.Security.Client.Verify
    Hackage.Security.JSON
    Hackage.Security.Key.Env
--     Hackage.Security.Server
    Hackage.Security.TUF.FileMap
    Hackage.Security.Trusted
    Hackage.Security.Util.Checked
    Hackage.Security.Util.Path
    Hackage.Security.Util.Pretty
    Hackage.Security.Util.Some
    Text.JSON.Canonical

  other-modules:
    Hackage.Security.Key
    Hackage.Security.Trusted.TCB
    Hackage.Security.TUF
    Hackage.Security.TUF.Common
    Hackage.Security.TUF.FileInfo
    Hackage.Security.TUF.Header
    Hackage.Security.TUF.Layout.Cache
    Hackage.Security.TUF.Layout.Index
    Hackage.Security.TUF.Layout.Repo
    Hackage.Security.TUF.Mirrors
    Hackage.Security.TUF.Paths
    Hackage.Security.TUF.Patterns
    Hackage.Security.TUF.Root
    Hackage.Security.TUF.Signed
    Hackage.Security.TUF.Snapshot
    Hackage.Security.TUF.Targets
    Hackage.Security.TUF.Timestamp
    Hackage.Security.Util.Base64
    Hackage.Security.Util.Exit
    Hackage.Security.Util.IO
    Hackage.Security.Util.JSON
    Hackage.Security.Util.Lens
    Hackage.Security.Util.Stack
    Hackage.Security.Util.TypedEmbedded
    MyPrelude

  default-extensions:
    DefaultSignatures
    DeriveDataTypeable
    DeriveFunctor
    FlexibleContexts
    FlexibleInstances
    GADTs
    GeneralizedNewtypeDeriving
    KindSignatures
    MultiParamTypeClasses
    NamedFieldPuns
    NoImplicitPrelude
    NoMonomorphismRestriction
    RankNTypes
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    TupleSections
    TypeFamilies
    TypeOperators
    ViewPatterns

  other-extensions:
    BangPatterns
    CPP
    OverlappingInstances
    PackageImports
    UndecidableInstances

library hackport-external-libs-cabal-install-solver
  import:           no-warnings
  default-language: Haskell2010
  hs-source-dirs:
    cabal/cabal-install-solver/src
    cabal/cabal-install-solver/src-assertion
  build-depends:
    , hackport-external-libs-Cabal
    , hackport-external-libs-Cabal-syntax
    , array         >=0.4
    , base          >=4.10
    , bytestring    >=0.10.6.0
    , containers    >=0.5.6.2
    , edit-distance >=0.2.2
    , filepath      >=1.4.0.0
    , mtl           >=2.0
    , pretty        >=1.1
    , transformers  >=0.4.2.0

  exposed-modules:
    Distribution.Client.Utils.Assertion
    Distribution.Solver.Compat.Prelude
    Distribution.Solver.Modular
    Distribution.Solver.Modular.Assignment
    Distribution.Solver.Modular.Builder
    Distribution.Solver.Modular.Configured
    Distribution.Solver.Modular.ConfiguredConversion
    Distribution.Solver.Modular.ConflictSet
    Distribution.Solver.Modular.Cycles
    Distribution.Solver.Modular.Dependency
    Distribution.Solver.Modular.Explore
    Distribution.Solver.Modular.Flag
    Distribution.Solver.Modular.Index
    Distribution.Solver.Modular.IndexConversion
    Distribution.Solver.Modular.LabeledGraph
    Distribution.Solver.Modular.Linking
    Distribution.Solver.Modular.Log
    Distribution.Solver.Modular.Message
    Distribution.Solver.Modular.MessageUtils
    Distribution.Solver.Modular.PSQ
    Distribution.Solver.Modular.Package
    Distribution.Solver.Modular.Preference
    Distribution.Solver.Modular.RetryLog
    Distribution.Solver.Modular.Solver
    Distribution.Solver.Modular.Tree
    Distribution.Solver.Modular.Validate
    Distribution.Solver.Modular.Var
    Distribution.Solver.Modular.Version
    Distribution.Solver.Modular.WeightedPSQ
    Distribution.Solver.Types.ComponentDeps
    Distribution.Solver.Types.ConstraintSource
    Distribution.Solver.Types.DependencyResolver
    Distribution.Solver.Types.Flag
    Distribution.Solver.Types.InstSolverPackage
    Distribution.Solver.Types.InstalledPreference
    Distribution.Solver.Types.LabeledPackageConstraint
    Distribution.Solver.Types.OptionalStanza
    Distribution.Solver.Types.PackageConstraint
    Distribution.Solver.Types.PackageFixedDeps
    Distribution.Solver.Types.PackageIndex
    Distribution.Solver.Types.PackagePath
    Distribution.Solver.Types.PackagePreferences
    Distribution.Solver.Types.PkgConfigDb
    Distribution.Solver.Types.Progress
    Distribution.Solver.Types.ResolverPackage
    Distribution.Solver.Types.Settings
    Distribution.Solver.Types.SolverId
    Distribution.Solver.Types.SolverPackage
    Distribution.Solver.Types.SourcePackage
    Distribution.Solver.Types.Variable

library hackport-external-libs-cabal-install
  import:           no-warnings
  default-language: Haskell2010
  hs-source-dirs:   cabal cabal/cabal-install/src
  build-depends:
    , hackport-external-libs-Cabal
    , hackport-external-libs-Cabal-syntax
    , hackport-external-libs-hackage-security
    , hackport-external-libs-cabal-install-solver
    , base                                     >=4.10
    , array                                    >=0.4
    , async                                    >=2.0
    , base16-bytestring                        >=0.1.1
    , binary                                   >=0.7.3
    , bytestring                               >=0.10.6.0
    , containers                               >=0.5.6.2
    , cryptohash-sha256                        >=0.11
    , deepseq                                  >=1.4.1.1
    , directory                                >=1.2.2.0
    , echo                                     >=0.1.3
    , edit-distance                            >=0.2.2
    , exceptions                               >=0.10.4
    , filepath                                 >=1.4.0.0
    , hashable                                 >=1.0
    , HTTP                                     >=4000.1.5
    , lukko                                    >=0.1
    , mtl                                      >=2.0
    , network-uri                              >=2.6.0.2
    , parsec                                   >=3.1.13.0
    , pretty                                   >=1.1
    , process                                  >=1.6.15.0
    , random                                   >=1.2
    , regex-base                               >=0.94.0.0
    , regex-posix                              >=0.96.0.0
    , resolv                                   >=0.1.1
    , safe-exceptions                          >=0.1.7.0
    , stm                                      >=2.0
    , tar                                      >=0.5.0.3
    , text                                     >=1.2.3
    , time                                     >=1.5.0.1
    , zlib                                     >=0.5.3

  exposed-modules:
    Distribution.Client.BuildReports.Anonymous
    Distribution.Client.BuildReports.Lens
    Distribution.Client.BuildReports.Storage
    Distribution.Client.BuildReports.Types
--     Distribution.Client.BuildReports.Upload
--     Distribution.Client.Check
--     Distribution.Client.CmdBench
--     Distribution.Client.CmdBuild
--     Distribution.Client.CmdClean
--     Distribution.Client.CmdConfigure
--     Distribution.Client.CmdErrorMessages
--     Distribution.Client.CmdExec
--     Distribution.Client.CmdFreeze
--     Distribution.Client.CmdHaddock
--     Distribution.Client.CmdInstall
    Distribution.Client.CmdInstall.ClientInstallFlags
--     Distribution.Client.CmdInstall.ClientInstallTargetSelector
--     Distribution.Client.CmdLegacy
--     Distribution.Client.CmdListBin
--     Distribution.Client.CmdOutdated
--     Distribution.Client.CmdRepl
--     Distribution.Client.CmdRun
--     Distribution.Client.CmdSdist
--     Distribution.Client.CmdTest
    Distribution.Client.CmdUpdate
    Distribution.Client.Compat.Directory
    Distribution.Client.Compat.ExecutablePath
    Distribution.Client.Compat.Orphans
    Distribution.Client.Compat.Prelude
--     Distribution.Client.Compat.Process
    Distribution.Client.Compat.Semaphore
    Distribution.Client.Config
--     Distribution.Client.Configure
    Distribution.Client.Dependency
    Distribution.Client.Dependency.Types
    Distribution.Client.DistDirLayout
--     Distribution.Client.Fetch
    Distribution.Client.FetchUtils
    Distribution.Client.FileMonitor
--     Distribution.Client.Freeze
    Distribution.Client.GZipUtils
--     Distribution.Client.GenBounds
--     Distribution.Client.Get
    Distribution.Client.Glob
    Distribution.Client.GlobalFlags
--     Distribution.Client.Haddock
    Distribution.Client.HashValue
    Distribution.Client.HttpUtils
    Distribution.Client.IndexUtils
    Distribution.Client.IndexUtils.ActiveRepos
    Distribution.Client.IndexUtils.IndexState
    Distribution.Client.IndexUtils.Timestamp
--     Distribution.Client.Init
    Distribution.Client.Init.Defaults
--     Distribution.Client.Init.FileCreators
--     Distribution.Client.Init.FlagExtractors
--     Distribution.Client.Init.Format
--     Distribution.Client.Init.Interactive.Command
--     Distribution.Client.Init.Licenses
--     Distribution.Client.Init.NonInteractive.Command
--     Distribution.Client.Init.NonInteractive.Heuristics
--     Distribution.Client.Init.Prompt
--     Distribution.Client.Init.Simple
    Distribution.Client.Init.Types
--     Distribution.Client.Init.Utils
--     Distribution.Client.Install
    Distribution.Client.InstallPlan
--     Distribution.Client.InstallSymlink
    Distribution.Client.JobControl
--     Distribution.Client.List
--     Distribution.Client.Manpage
    Distribution.Client.ManpageFlags
--     Distribution.Client.Nix
    Distribution.Client.NixStyleOptions
    Distribution.Client.PackageHash
    Distribution.Client.ParseUtils
    Distribution.Client.ProjectBuilding
    Distribution.Client.ProjectBuilding.Types
    Distribution.Client.ProjectConfig
    Distribution.Client.ProjectConfig.Legacy
    Distribution.Client.ProjectConfig.Types
    Distribution.Client.ProjectFlags
    Distribution.Client.ProjectOrchestration
    Distribution.Client.ProjectPlanOutput
    Distribution.Client.ProjectPlanning
    Distribution.Client.ProjectPlanning.Types
    Distribution.Client.RebuildMonad
--     Distribution.Client.Reconfigure
--     Distribution.Client.Run
--     Distribution.Client.Sandbox
--     Distribution.Client.Sandbox.PackageEnvironment
--     Distribution.Client.SavedFlags
--     Distribution.Client.ScriptUtils
    Distribution.Client.Security.DNS
    Distribution.Client.Security.HTTP
    Distribution.Client.Setup
    Distribution.Client.SetupWrapper
    Distribution.Client.SolverInstallPlan
    Distribution.Client.SourceFiles
    Distribution.Client.SrcDist
    Distribution.Client.Store
    Distribution.Client.Tar
    Distribution.Client.TargetProblem
    Distribution.Client.TargetSelector
    Distribution.Client.Targets
    Distribution.Client.Types
    Distribution.Client.Types.AllowNewer
    Distribution.Client.Types.BuildResults
    Distribution.Client.Types.ConfiguredId
    Distribution.Client.Types.ConfiguredPackage
    Distribution.Client.Types.Credentials
    Distribution.Client.Types.InstallMethod
    Distribution.Client.Types.OverwritePolicy
    Distribution.Client.Types.PackageLocation
    Distribution.Client.Types.PackageSpecifier
    Distribution.Client.Types.ReadyPackage
    Distribution.Client.Types.Repo
    Distribution.Client.Types.RepoName
    Distribution.Client.Types.SourcePackageDb
    Distribution.Client.Types.SourceRepo
    Distribution.Client.Types.WriteGhcEnvironmentFilesPolicy
--     Distribution.Client.Upload
    Distribution.Client.Utils
    Distribution.Client.Utils.Json
    Distribution.Client.Utils.Parsec
    Distribution.Client.VCS
    Distribution.Client.Version
--     Distribution.Client.Win32SelfUpgrade
    Distribution.Deprecated.ParseUtils
    Distribution.Deprecated.ReadP
    Distribution.Deprecated.ViewAsFieldDescr
    Paths_cabal_install

library hackport-internal
  import:             warnings
  default-language:   Haskell2010
  hs-source-dirs:     src
  build-depends:
    , hackport-external-libs-Cabal-syntax
    , hackport-external-libs-Cabal
    , hackport-external-libs-cabal-install-solver
    , hackport-external-libs-cabal-install
    , base
    , async
    , bytestring
    , containers
    , deepseq
    , directory
    , extensible-exceptions
    , filepath
    , lifted-base
    , monad-control
    , mtl
    , network-uri
    , parallel                              >=3.2.1.0
    , parsec
    , pretty
    , process
    , QuickCheck
    , split
    , template-haskell
    , text
    , time
    , xml

  -- Needed for doctests-v2 to work
  default-extensions:
    FlexibleContexts
    MultiParamTypeClasses

  other-extensions:
    CPP
    ConstraintKinds
    DeriveDataTypeable
    LambdaCase
    PatternGuards

  exposed-modules:
    AnsiColor
    Cabal2Ebuild
    Error
    Hackport.Command.List
    Hackport.Command.MakeEbuild
    Hackport.Command.Merge
    Hackport.Command.Status
    Hackport.Command.Update
    Hackport.Env
    Hackport.Util
    Merge
    Merge.Dependencies
    Merge.Utils
    Overlays
    Paths_hackport
    Portage.Cabal
    Portage.Dependency
    Portage.Dependency.Builder
    Portage.Dependency.Normalize
    Portage.Dependency.Print
    Portage.Dependency.Types
    Portage.EBuild
    Portage.EBuild.CabalFeature
    Portage.EBuild.Render
    Portage.EMeta
    Portage.GHCCore
    Portage.Host
    Portage.Metadata
    Portage.Metadata.RemoteId
    Portage.Overlay
    Portage.PackageId
    Portage.Resolve
    Portage.Tables
    Portage.Use
    Portage.Version
    Status
    Status.Types
    Util

  autogen-modules:    Paths_hackport

executable hackport
  import:           warnings
  ghc-options:      -threaded +RTS -N -RTS -with-rtsopts=-N
  if flag(profile)
    ghc-prof-options: -caf-all -auto-all -rtsopts
  main-is:          Main.hs
  default-language: Haskell2010
  hs-source-dirs:   exe
  build-depends:
    , hackport-external-libs-Cabal-syntax
    , hackport-external-libs-Cabal
    , hackport-external-libs-cabal-install
    , hackport-internal
    , base
    , directory
    , filepath
    , optparse-applicative
    , parsec
    , parser-combinators

  other-modules:    Paths_hackport
  other-extensions:
    ApplicativeDo
    CPP

test-suite test-resolve-category
  import:             warnings

  -- requires a local Portage overlay, thus fails in a sandboxed test.
  if !flag(gentoo-tests)
    buildable: False

  type:               exitcode-stdio-1.0
  default-language:   Haskell98
  main-is:            Main.hs
  hs-source-dirs:     tests/resolveCat
  build-depends:
    , hackport-external-libs-Cabal-syntax
    , hackport-external-libs-Cabal
    , hackport-internal
    , base
    , array
    , binary
    , bytestring
    , containers
    , deepseq
    , directory
    , extensible-exceptions
    , filepath
    , HUnit
    , parsec
    , pretty
    , process
    , split
    , text
    , time
    , transformers
    , unix
    , xml

  default-extensions:
    DoAndIfThenElse
    PatternGuards

test-suite test-print-deps
  import:             warnings

  -- This test-suite has been incorporated into the 'spec' test-suite,
  -- and may be removed in the future.
  buildable:          False
  type:               exitcode-stdio-1.0
  default-language:   Haskell98
  main-is:            Main.hs
  hs-source-dirs:     tests/print_deps
  build-depends:
    , array
    , base
    , binary
    , bytestring
    , containers
    , deepseq
    , directory
    , extensible-exceptions
    , filepath
    , hackport-external-libs
    , HUnit
    , parsec
    , pretty
    , process
    , text
    , time
    , transformers
    , unix
    , xml

  default-extensions:
    DoAndIfThenElse
    PatternGuards

test-suite test-normalize-deps
  import:             warnings

  -- This test-suite has been incorporated into the 'spec' test-suite,
  -- and may be removed in the future.
  buildable:          False
  type:               exitcode-stdio-1.0
  default-language:   Haskell98
  main-is:            Main.hs
  hs-source-dirs:     tests/normalize_deps
  build-depends:
    , array
    , base
    , binary
    , bytestring
    , containers
    , deepseq
    , directory
    , extensible-exceptions
    , filepath
    , hackport-external-libs
    , HUnit
    , parsec
    , pretty
    , process
    , text
    , time
    , transformers
    , unix
    , xml

  default-extensions:
    DoAndIfThenElse
    PatternGuards

test-suite doctests
  import:               warnings
  x-doctest-components: lib:hackport-internal exe:hackport
  type:                 exitcode-stdio-1.0
  hs-source-dirs:       tests/doctests
  ghc-options:          -threaded
  default-language:     Haskell98
  main-is:              Main.hs
  build-depends:
    , base
    , base-compat
    , cabal-doctest
    , directory
    , doctest           >=0.8
    , filepath
    , Glob
    , QuickCheck
    , template-haskell

  other-modules:        Paths_hackport

  if !flag(cabal-v1)
    buildable: False

test-suite doctests-v2
  import:             warnings
  -- doctests-v2 is causing problems, looking for ghc lib and alex on
  -- github CI. This may be fixable.
  buildable:          False
  type:               exitcode-stdio-1.0
  default-language:   Haskell98
  hs-source-dirs:     tests/doctests-v2
  main-is:            Main.hs
  build-depends:
    , base
    , process

  build-tool-depends:
    , cabal-install:cabal  >=3.4
    , doctest:doctest      >=0.8

  if flag(cabal-v1)
    buildable: False

test-suite spec
  import:             warnings
  type:               exitcode-stdio-1.0
  default-language:   Haskell2010
  main-is:            Main.hs
  hs-source-dirs:     tests/spec
  other-modules:
    Merge.UtilsSpec
    Portage.CabalSpec
    Portage.Dependency.PrintSpec
    Portage.EBuildSpec
    Portage.GHCCoreSpec
    Portage.Metadata.RemoteIdSpec
    Portage.MetadataSpec
    Portage.PackageIdSpec
    Portage.VersionSpec
    QuickCheck.Instances

  build-depends:
    , hackport-external-libs-Cabal-syntax
    , hackport-external-libs-Cabal
    , hackport-external-libs-cabal-install
    , hackport-internal
    , base
    , async
    , bytestring
    , containers
    , deepseq
    , directory
    , extensible-exceptions
    , filepath
    , hspec                                 >=2.0
    , network-uri
    , parallel
    , parsec
    , pretty
    , process
    , QuickCheck                            >=2.0
    , split
    , text
    , time
    , xml

  build-tool-depends: hspec-discover:hspec-discover >=2.0
  other-extensions:   DeriveDataTypeable