packages feed

Cabal revisions of ghcup-0.1.40.0

Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.

revision 1
-cabal-version:      2.4-name:               ghcup-version:            0.1.40.0-license:            LGPL-3.0-only-license-file:       LICENSE-copyright:          Julian Ospald 2024-maintainer:         hasufell@posteo.de-author:             Julian Ospald-homepage:           https://github.com/haskell/ghcup-hs-bug-reports:        https://github.com/haskell/ghcup-hs/issues/-synopsis:           ghc toolchain installer-description:-  A rewrite of the shell script ghcup, for providing-  a more stable user experience and exposing an API.--category:           System-build-type:         Simple-extra-doc-files:-  CHANGELOG.md-  data/config.yaml-  README.md--extra-source-files:-  cbits/dirutils.c-  cbits/dirutils.h-  data/build_mk/cross-  data/build_mk/default-  scoop-better-shimexe/shim.c-  scripts/bootstrap/bootstrap-haskell-  scripts/bootstrap/bootstrap-haskell.ps1-  scripts/hooks/stack/ghc-install.sh-  scripts/shell-completions/bash-  scripts/shell-completions/fish-  scripts/shell-completions/zsh-  test/ghcup-test/data/dir/.keep-  test/ghcup-test/data/file-  test/ghcup-test/golden/unix/GHCupInfo.json--tested-with: GHC==9.6.6-           , GHC==9.4.8-           , GHC==9.2.8-           , GHC==9.0.2-           , GHC==8.10.7--source-repository head-  type:     git-  location: https://github.com/haskell/ghcup-hs.git--flag tui-  description:-    Build the brick powered tui (ghcup tui).--  default:     True-  manual:      True--flag internal-downloader-  description:-    Compile the internal downloader, which links against OpenSSL. This is disabled on windows.--  default:     False-  manual:      True--flag strict-metadata-parsing-  description:-    Don't ignore unknown keys in metadata. Useful for metadata testing.--  default:     False-  manual:      True--flag no-exe-  description: Don't build any executables-  default:     False-  manual:      True--flag tar-  description: Use haskell tar instead of libarchive.-  default:     False-  manual:      True--common app-common-depends-  build-depends:-    , aeson                  >=1.4-    , aeson-pretty           ^>=0.8.8-    , async                  ^>=2.2.3-    , attoparsec             ^>= 0.14-    , base                   >=4.12     && <5-    , bytestring             >=0.10     && <0.13-    , containers             ^>=0.6-    , deepseq                ^>=1.4 || ^>=1.5-    , directory              ^>=1.3.6.0-    , filepath               >=1.4.101.0-    , variant                ^>=1.0-    , megaparsec             >=8.0.0    && <9.8-    , mtl                    ^>=2.2 || ^>=2.3-    , optics                ^>=0.4-    , optparse-applicative   >=0.15.1.0 && <0.19-    , pretty                 ^>=1.1.3.1-    , pretty-terminal        ^>=0.1.0.0-    , process                ^>=1.6.11.0-    , resourcet              ^>=1.2.2 || ^>=1.3-    , safe                   ^>=0.3.18-    , safe-exceptions        ^>=0.1-    , tagsoup                ^>=0.14-    , transformers           ^>=0.5 || ^>=0.6-    , template-haskell       >=2.7      && <2.23-    , temporary              ^>=1.3-    , text                   ^>=2.0 || ^>=2.1-    , time                   >=1.9.3    && <1.13-    , unordered-containers   ^>=0.2-    , uri-bytestring         ^>=0.3.2.2-    , utf8-string            ^>=1.0-    , vector                 >=0.12     && <0.14-    , versions               >=6.0.5      && <6.1-    , yaml                   ^>=0.11.0--  if flag(tar)-    cpp-options:   -DTAR-    build-depends:-        tar ^>=0.6.0.0-      , zip ^>=2.0.0 || ^>=2.1.0--  else-    build-depends: libarchive ^>=3.0.3.0--library-  import:             app-common-depends-  exposed-modules:-    GHCup-    GHCup.Cabal-    GHCup.CabalConfig-    GHCup.Download-    GHCup.Download.Utils-    GHCup.Errors-    GHCup.GHC-    GHCup.HLS-    GHCup.List-    GHCup.Platform-    GHCup.PlanJson-    GHCup.Prelude-    GHCup.Prelude.Attoparsec-    GHCup.Prelude.File-    GHCup.Prelude.File.Search-    GHCup.Prelude.Internal-    GHCup.Prelude.Logger-    GHCup.Prelude.Logger.Internal-    GHCup.Prelude.MegaParsec-    GHCup.Prelude.Process-    GHCup.Prelude.String.QQ-    GHCup.Prelude.Version.QQ-    GHCup.Prompts-    GHCup.Requirements-    GHCup.Stack-    GHCup.Types-    GHCup.Types.JSON-    GHCup.Types.JSON.MapIgnoreUnknownKeys-    GHCup.Types.JSON.Utils-    GHCup.Types.JSON.Versions-    GHCup.Types.Optics-    GHCup.Types.Stack-    GHCup.Utils-    GHCup.Utils.Dirs-    GHCup.Utils.Tar-    GHCup.Utils.Tar.Types-    GHCup.Utils.URI-    GHCup.Utils.Output-    GHCup.Utils.Pager-    GHCup.Utils.Parsers-    GHCup.Version--  hs-source-dirs:     lib-  other-modules:      Paths_ghcup-  autogen-modules:    Paths_ghcup-  default-language:   Haskell2010-  default-extensions:-    DeriveGeneric-    LambdaCase-    MultiWayIf-    NamedFieldPuns-    PackageImports-    QuasiQuotes-    RecordWildCards-    ScopedTypeVariables-    StrictData-    TupleSections-    TypeApplications-    TypeFamilies-    ViewPatterns--  ghc-options:-    -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns-    -fwarn-incomplete-record-updates--  build-depends:-    , aeson                 >=1.4-    , async                 >=0.8        && <2.3-    , attoparsec            ^>= 0.14-    , base                  >=4.12       && <5-    , base16-bytestring     >=0.1.1.6    && <1.1-    , binary                ^>=0.8.6.0-    , bytestring            >=0.10       && <0.13-    , bz2                   ^>=1.0.1.1-    , Cabal                 ^>=3.0.0.0 || ^>=3.2.0.0 || ^>=3.4.0.0 || ^>=3.6.0.0 || ^>=3.8.0.0 || ^>= 3.10.0.0-    , Cabal-syntax   ^>=3.6.0.0 || ^>=3.8.0.0 || ^>= 3.10.0.0 || ^>= 3.12.0.0-    , case-insensitive      ^>=1.2.1.0-    , casing                ^>=0.1.4.1-    , containers            ^>=0.6-    , conduit               ^>=1.3-    , conduit-extra         ^>=1.3-    , cryptohash-sha256     ^>=0.11.101.0-    , deepseq               ^>=1.4.4.0 || ^>=1.5-    , directory             ^>=1.3.6.0-    , disk-free-space       ^>=0.1.0.1-    , exceptions            ^>=0.10-    , filepath              >=1.4.101.0-    , file-uri              ^>=0.1.0.0-    , variant                ^>=1.0-    , xz                    ^>=5.6.3-    , megaparsec            >=8.0.0      && <9.8-    , mtl                   ^>=2.2 || ^>=2.3-    , optics                ^>=0.4-    , os-release            ^>=1.0.0-    , parsec-    , pretty                ^>=1.1.3.1-    , pretty-terminal       ^>=0.1.0.0-    , regex-posix           ^>=0.96-    , resourcet             ^>=1.2.2 || ^>=1.3-    , retry                 >=0.8.1.2    && <0.10-    , safe                  ^>=0.3.18-    , safe-exceptions       ^>=0.1-    , split                 ^>=0.2.3.4-    , strict-base           ^>=0.4-    , template-haskell       >=2.7      && <2.23-    , temporary             ^>=1.3-    , terminal-size         ^>=0.3.3-    , text                  ^>=2.0 || ^>=2.1-    , time                  >=1.9.3      && <1.13-    , transformers          ^>=0.5 || ^>=0.6-    , unliftio-core         ^>=0.2.0.1-    , unordered-containers  ^>=0.2.10.0-    , uri-bytestring        ^>=0.3.2.2-    , utf8-string           ^>=1.0-    , vector                 >=0.12     && <0.14-    , versions               >=6.0.5      && <6.1-    , word8                 ^>=0.1.3-    , yaml                  ^>=0.11.0-    , zlib                  ^>=0.6.2.2--  if flag(tar)-    cpp-options:   -DTAR-    build-depends:-        tar ^>=0.6.0.0-      , zip ^>=2.0.0 || ^>=2.1.0--  else-    build-depends: libarchive ^>=3.0.3.0--  if (flag(internal-downloader) && !os(windows))-    exposed-modules: GHCup.Download.IOStreams-    cpp-options:     -DINTERNAL_DOWNLOADER-    build-depends:-      , HsOpenSSL              >=0.11.7.2-      , http-io-streams        >=0.1.2.0-      , io-streams             >=1.5.2.1-      , terminal-progress-bar  >=0.4.1--  if os(windows)-    cpp-options:     -DIS_WINDOWS-    other-modules:-      GHCup.Prelude.File.Windows-      GHCup.Prelude.Windows--    -- GHCup.OptParse.Run uses this-    exposed-modules: GHCup.Prelude.Process.Windows-    build-depends:-      , process  ^>=1.6.11.0-      , Win32    >=2.10--  else-    other-modules:-      GHCup.Prelude.File.Posix-      GHCup.Prelude.File.Posix.Foreign-      GHCup.Prelude.Posix-      GHCup.Prelude.Process.Posix--    exposed-modules:  GHCup.Prelude.File.Posix.Traversals-    include-dirs:     cbits-    install-includes: dirutils.h-    c-sources:        cbits/dirutils.c-    build-depends:-      , unix             ^>=2.7 || ^>=2.8-      , unix-bytestring  ^>=0.4--  if flag(tui)-    cpp-options:   -DBRICK-    build-depends: vty ^>=6.0 || ^>=6.1 || ^>=6.2--  if (flag(strict-metadata-parsing))-    cpp-options:     -DSTRICT_METADATA_PARSING--library ghcup-optparse-  import:             app-common-depends-  exposed-modules:-    GHCup.OptParse-    GHCup.OptParse.ChangeLog-    GHCup.OptParse.Common-    GHCup.OptParse.Compile-    GHCup.OptParse.Config-    GHCup.OptParse.DInfo-    GHCup.OptParse.GC-    GHCup.OptParse.Install-    GHCup.OptParse.List-    GHCup.OptParse.Nuke-    GHCup.OptParse.Prefetch-    GHCup.OptParse.Rm-    GHCup.OptParse.Run-    GHCup.OptParse.Set-    GHCup.OptParse.Test-    GHCup.OptParse.ToolRequirements-    GHCup.OptParse.UnSet-    GHCup.OptParse.Upgrade-    GHCup.OptParse.Whereis-    Options.Applicative.Pretty.Shim--  hs-source-dirs:     lib-opt-  default-language:   Haskell2010-  default-extensions:-    LambdaCase-    MultiWayIf-    NamedFieldPuns-    PackageImports-    RecordWildCards-    ScopedTypeVariables-    StrictData-    TupleSections--  ghc-options:-    -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns-    -fwarn-incomplete-record-updates--  build-depends:      ghcup--  if flag(internal-downloader)-    cpp-options: -DINTERNAL_DOWNLOADER--  if flag(tui)-    cpp-options:   -DBRICK--  if os(windows)-    cpp-options: -DIS_WINDOWS--  else-    build-depends:  unix ^>=2.7 || ^>=2.8--library ghcup-tui-  import:             app-common-depends-  exposed-modules:-    GHCup.BrickMain-    GHCup.Brick.Widgets.Navigation-    GHCup.Brick.Widgets.Tutorial-    GHCup.Brick.Widgets.KeyInfo-    GHCup.Brick.Widgets.SectionList-    GHCup.Brick.Widgets.Menu-    GHCup.Brick.Widgets.Menus.Context-    GHCup.Brick.Widgets.Menus.AdvanceInstall-    GHCup.Brick.Widgets.Menus.CompileGHC-    GHCup.Brick.Widgets.Menus.CompileHLS-    GHCup.Brick.Actions-    GHCup.Brick.App-    GHCup.Brick.BrickState-    GHCup.Brick.Attributes-    GHCup.Brick.Common--  hs-source-dirs:     lib-tui-  default-language:   Haskell2010-  default-extensions:-    LambdaCase-    MultiWayIf-    NamedFieldPuns-    PackageImports-    RecordWildCards-    ScopedTypeVariables-    StrictData-    TupleSections--  ghc-options:-    -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns-    -fwarn-incomplete-record-updates--  build-depends:-    , ghcup-    , brick         ^>=2.1-    , vty           ^>=6.0 || ^>=6.1 || ^>=6.2--  if !flag(tui)-    buildable: False--  if os(windows)-    cpp-options: -DIS_WINDOWS--  else-    build-depends:  unix ^>=2.7 || ^>=2.8--executable ghcup-  import:             app-common-depends-  main-is:            Main.hs--  hs-source-dirs:     app/ghcup-  default-language:   Haskell2010-  default-extensions:-    LambdaCase-    MultiWayIf-    NamedFieldPuns-    PackageImports-    RecordWildCards-    ScopedTypeVariables-    StrictData-    TupleSections--  ghc-options:-    -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns-    -fwarn-incomplete-record-updates -threaded--  build-depends:-    , ghcup-    , ghcup-optparse--  if flag(internal-downloader)-    cpp-options: -DINTERNAL_DOWNLOADER--  if flag(tui)-    cpp-options:   -DBRICK-    build-depends:-      , ghcup-tui-      , transformers  ^>=0.5 || ^>=0.6--  if os(windows)-    cpp-options: -DIS_WINDOWS-  else-    build-depends: unix ^>=2.7 || ^>=2.8--  if flag(no-exe)-    buildable: False--test-suite ghcup-test-  type:               exitcode-stdio-1.0-  main-is:            Main.hs-  build-tool-depends: hspec-discover:hspec-discover -any-  hs-source-dirs:     test/ghcup-test-  other-modules:-    GHCup.ArbitraryTypes-    GHCup.Prelude.File.Posix.TraversalsSpec-    GHCup.Types.JSONSpec-    GHCup.Utils.FileSpec-    Spec--  default-language:   Haskell2010-  default-extensions:-    LambdaCase-    MultiWayIf-    PackageImports-    RecordWildCards-    ScopedTypeVariables-    TupleSections--  ghc-options:-    -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns-    -fwarn-incomplete-record-updates--  build-depends:-    , base                      >=4.12    && <5-    , bytestring                >=0.10    && <0.13-    , containers                ^>=0.6-    , conduit                   ^>=1.3-    , directory                 ^>=1.3.6.0-    , filepath                  >=1.4.101.0-    , generic-arbitrary         ^>=0.1.0 || ^>=0.2.2-    , ghcup-    , hspec                     >=2.7.10  && <2.12-    , hspec-golden-aeson        ^>=0.9-    , QuickCheck                ^>=2.14.1-    , quickcheck-arbitrary-adt  ^>=0.3.1.0-    , text                      ^>=2.0 || ^>=2.1-    , time                      >=1.9.3   && <1.13-    , uri-bytestring            ^>=0.3.2.2-    , versions                   >=6.0.5      && <6.1--  if os(windows)-    cpp-options: -DIS_WINDOWS--  else-    build-depends: unix ^>=2.7 || ^>=2.8--test-suite ghcup-optparse-test-  type:             exitcode-stdio-1.0-  hs-source-dirs:   test/optparse-test-  main-is:          Main.hs-  other-modules:-    ChangeLogTest-    CompileTest-    ConfigTest-    GCTest-    InstallTest-    ListTest-    OtherCommandTest-    RmTest-    RunTest-    SetTest-    UnsetTest-    UpgradeTest-    Utils-    WhereisTest--  if os(windows)-    cpp-options: -DIS_WINDOWS--  default-language: Haskell2010-  ghc-options:      -Wall-  build-depends:-    , base-    , ghcup-    , ghcup-optparse-    , optparse-applicative-    , tasty-    , tasty-hunit-    , template-haskell-    , text-    , uri-bytestring-    , versions+cabal-version:      2.4
+name:               ghcup
+version:            0.1.40.0
+x-revision:         1
+license:            LGPL-3.0-only
+license-file:       LICENSE
+copyright:          Julian Ospald 2024
+maintainer:         hasufell@posteo.de
+author:             Julian Ospald
+homepage:           https://github.com/haskell/ghcup-hs
+bug-reports:        https://github.com/haskell/ghcup-hs/issues/
+synopsis:           ghc toolchain installer
+description:
+  A rewrite of the shell script ghcup, for providing
+  a more stable user experience and exposing an API.
+
+category:           System
+build-type:         Simple
+extra-doc-files:
+  CHANGELOG.md
+  data/config.yaml
+  README.md
+
+extra-source-files:
+  cbits/dirutils.c
+  cbits/dirutils.h
+  data/build_mk/cross
+  data/build_mk/default
+  scoop-better-shimexe/shim.c
+  scripts/bootstrap/bootstrap-haskell
+  scripts/bootstrap/bootstrap-haskell.ps1
+  scripts/hooks/stack/ghc-install.sh
+  scripts/shell-completions/bash
+  scripts/shell-completions/fish
+  scripts/shell-completions/zsh
+  test/ghcup-test/data/dir/.keep
+  test/ghcup-test/data/file
+  test/ghcup-test/golden/unix/GHCupInfo.json
+
+tested-with: GHC==9.6.6
+           , GHC==9.4.8
+           , GHC==9.2.8
+           , GHC==9.0.2
+           , GHC==8.10.7
+
+source-repository head
+  type:     git
+  location: https://github.com/haskell/ghcup-hs.git
+
+flag tui
+  description:
+    Build the brick powered tui (ghcup tui).
+
+  default:     True
+  manual:      True
+
+flag internal-downloader
+  description:
+    Compile the internal downloader, which links against OpenSSL. This is disabled on windows.
+
+  default:     False
+  manual:      True
+
+flag strict-metadata-parsing
+  description:
+    Don't ignore unknown keys in metadata. Useful for metadata testing.
+
+  default:     False
+  manual:      True
+
+flag no-exe
+  description: Don't build any executables
+  default:     False
+  manual:      True
+
+flag tar
+  description: Use haskell tar instead of libarchive.
+  default:     False
+  manual:      True
+
+common app-common-depends
+  build-depends:
+    , aeson                  >=1.4
+    , aeson-pretty           ^>=0.8.8
+    , async                  ^>=2.2.3
+    , attoparsec             ^>= 0.14
+    , base                   >=4.12     && <5
+    , bytestring             >=0.10     && <0.13
+    , containers             ^>=0.6 || ^>=0.7
+    , deepseq                ^>=1.4 || ^>=1.5 || ^>=1.6
+    , directory              ^>=1.3.6.0
+    , filepath               >=1.4.101.0
+    , variant                ^>=1.0
+    , megaparsec             >=8.0.0    && <9.8
+    , mtl                    ^>=2.2 || ^>=2.3
+    , optics                ^>=0.4
+    , optparse-applicative   >=0.15.1.0 && <0.19
+    , pretty                 ^>=1.1.3.1
+    , pretty-terminal        ^>=0.1.0.0
+    , process                ^>=1.6.11.0
+    , resourcet              ^>=1.2.2 || ^>=1.3
+    , safe                   ^>=0.3.18
+    , safe-exceptions        ^>=0.1
+    , tagsoup                ^>=0.14
+    , transformers           ^>=0.5 || ^>=0.6
+    , template-haskell       >=2.7      && <2.24
+    , temporary              ^>=1.3
+    , text                   ^>=2.0 || ^>=2.1
+    , time                   >=1.9.3    && <1.15
+    , unordered-containers   ^>=0.2
+    , uri-bytestring         ^>=0.3.2.2
+    , utf8-string            ^>=1.0
+    , vector                 >=0.12     && <0.14
+    , versions               >=6.0.5      && <6.1
+    , yaml                   ^>=0.11.0
+
+  if flag(tar)
+    cpp-options:   -DTAR
+    build-depends:
+        tar ^>=0.6.0.0
+      , zip ^>=2.0.0 || ^>=2.1.0
+
+  else
+    build-depends: libarchive ^>=3.0.3.0
+
+library
+  import:             app-common-depends
+  exposed-modules:
+    GHCup
+    GHCup.Cabal
+    GHCup.CabalConfig
+    GHCup.Download
+    GHCup.Download.Utils
+    GHCup.Errors
+    GHCup.GHC
+    GHCup.HLS
+    GHCup.List
+    GHCup.Platform
+    GHCup.PlanJson
+    GHCup.Prelude
+    GHCup.Prelude.Attoparsec
+    GHCup.Prelude.File
+    GHCup.Prelude.File.Search
+    GHCup.Prelude.Internal
+    GHCup.Prelude.Logger
+    GHCup.Prelude.Logger.Internal
+    GHCup.Prelude.MegaParsec
+    GHCup.Prelude.Process
+    GHCup.Prelude.String.QQ
+    GHCup.Prelude.Version.QQ
+    GHCup.Prompts
+    GHCup.Requirements
+    GHCup.Stack
+    GHCup.Types
+    GHCup.Types.JSON
+    GHCup.Types.JSON.MapIgnoreUnknownKeys
+    GHCup.Types.JSON.Utils
+    GHCup.Types.JSON.Versions
+    GHCup.Types.Optics
+    GHCup.Types.Stack
+    GHCup.Utils
+    GHCup.Utils.Dirs
+    GHCup.Utils.Tar
+    GHCup.Utils.Tar.Types
+    GHCup.Utils.URI
+    GHCup.Utils.Output
+    GHCup.Utils.Pager
+    GHCup.Utils.Parsers
+    GHCup.Version
+
+  hs-source-dirs:     lib
+  other-modules:      Paths_ghcup
+  autogen-modules:    Paths_ghcup
+  default-language:   Haskell2010
+  default-extensions:
+    DeriveGeneric
+    LambdaCase
+    MultiWayIf
+    NamedFieldPuns
+    PackageImports
+    QuasiQuotes
+    RecordWildCards
+    ScopedTypeVariables
+    StrictData
+    TupleSections
+    TypeApplications
+    TypeFamilies
+    ViewPatterns
+
+  ghc-options:
+    -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns
+    -fwarn-incomplete-record-updates
+
+  build-depends:
+    , aeson                 >=1.4
+    , async                 >=0.8        && <2.3
+    , attoparsec            ^>= 0.14
+    , base                  >=4.12       && <5
+    , base16-bytestring     >=0.1.1.6    && <1.1
+    , binary                ^>=0.8.6.0 || ^>=0.9 || ^>=0.10
+    , bytestring            >=0.10       && <0.13
+    , bz2                   ^>=1.0.1.1
+    , Cabal                 ^>=3.0.0.0 || ^>=3.2.0.0 || ^>=3.4.0.0 || ^>=3.6.0.0 || ^>=3.8.0.0 || ^>= 3.10.0.0
+    , Cabal-syntax   ^>=3.6.0.0 || ^>=3.8.0.0 || ^>= 3.10.0.0 || ^>= 3.12.0.0
+    , case-insensitive      ^>=1.2.1.0
+    , casing                ^>=0.1.4.1
+    , containers            ^>=0.6
+    , conduit               ^>=1.3
+    , conduit-extra         ^>=1.3
+    , cryptohash-sha256     ^>=0.11.101.0
+    , deepseq               ^>=1.4 || ^>=1.5 || ^>=1.6
+    , directory             ^>=1.3.6.0
+    , disk-free-space       ^>=0.1.0.1
+    , exceptions            ^>=0.10
+    , filepath              >=1.4.101.0
+    , file-uri              ^>=0.1.0.0
+    , variant                ^>=1.0
+    , xz                    ^>=5.6.3
+    , megaparsec            >=8.0.0      && <9.8
+    , mtl                   ^>=2.2 || ^>=2.3
+    , optics                ^>=0.4
+    , os-release            ^>=1.0.0
+    , parsec
+    , pretty                ^>=1.1.3.1
+    , pretty-terminal       ^>=0.1.0.0
+    , regex-posix           ^>=0.96
+    , resourcet             ^>=1.2.2 || ^>=1.3
+    , retry                 >=0.8.1.2    && <0.10
+    , safe                  ^>=0.3.18
+    , safe-exceptions       ^>=0.1
+    , split                 ^>=0.2.3.4
+    , strict-base           ^>=0.4
+    , template-haskell       >=2.7      && <2.24
+    , temporary             ^>=1.3
+    , terminal-size         ^>=0.3.3
+    , text                  ^>=2.0 || ^>=2.1
+    , time                  >=1.9.3      && <1.15
+    , transformers          ^>=0.5 || ^>=0.6
+    , unliftio-core         ^>=0.2.0.1
+    , unordered-containers  ^>=0.2.10.0
+    , uri-bytestring        ^>=0.3.2.2
+    , utf8-string           ^>=1.0
+    , vector                 >=0.12     && <0.14
+    , versions               >=6.0.5      && <6.1
+    , word8                 ^>=0.1.3
+    , yaml                  ^>=0.11.0
+    , zlib                  ^>=0.6.2.2 || ^>=0.7
+
+  if flag(tar)
+    cpp-options:   -DTAR
+    build-depends:
+        tar ^>=0.6.0.0
+      , zip ^>=2.0.0 || ^>=2.1.0
+
+  else
+    build-depends: libarchive ^>=3.0.3.0
+
+  if (flag(internal-downloader) && !os(windows))
+    exposed-modules: GHCup.Download.IOStreams
+    cpp-options:     -DINTERNAL_DOWNLOADER
+    build-depends:
+      , HsOpenSSL              >=0.11.7.2
+      , http-io-streams        >=0.1.2.0
+      , io-streams             >=1.5.2.1
+      , terminal-progress-bar  >=0.4.1
+
+  if os(windows)
+    cpp-options:     -DIS_WINDOWS
+    other-modules:
+      GHCup.Prelude.File.Windows
+      GHCup.Prelude.Windows
+
+    -- GHCup.OptParse.Run uses this
+    exposed-modules: GHCup.Prelude.Process.Windows
+    build-depends:
+      , process  ^>=1.6.11.0
+      , Win32    >=2.10
+
+  else
+    other-modules:
+      GHCup.Prelude.File.Posix
+      GHCup.Prelude.File.Posix.Foreign
+      GHCup.Prelude.Posix
+      GHCup.Prelude.Process.Posix
+
+    exposed-modules:  GHCup.Prelude.File.Posix.Traversals
+    include-dirs:     cbits
+    install-includes: dirutils.h
+    c-sources:        cbits/dirutils.c
+    build-depends:
+      , unix             ^>=2.7 || ^>=2.8
+      , unix-bytestring  ^>=0.4
+
+  if flag(tui)
+    cpp-options:   -DBRICK
+    build-depends: vty ^>=6.0 || ^>=6.1 || ^>=6.2
+
+  if (flag(strict-metadata-parsing))
+    cpp-options:     -DSTRICT_METADATA_PARSING
+
+library ghcup-optparse
+  import:             app-common-depends
+  exposed-modules:
+    GHCup.OptParse
+    GHCup.OptParse.ChangeLog
+    GHCup.OptParse.Common
+    GHCup.OptParse.Compile
+    GHCup.OptParse.Config
+    GHCup.OptParse.DInfo
+    GHCup.OptParse.GC
+    GHCup.OptParse.Install
+    GHCup.OptParse.List
+    GHCup.OptParse.Nuke
+    GHCup.OptParse.Prefetch
+    GHCup.OptParse.Rm
+    GHCup.OptParse.Run
+    GHCup.OptParse.Set
+    GHCup.OptParse.Test
+    GHCup.OptParse.ToolRequirements
+    GHCup.OptParse.UnSet
+    GHCup.OptParse.Upgrade
+    GHCup.OptParse.Whereis
+    Options.Applicative.Pretty.Shim
+
+  hs-source-dirs:     lib-opt
+  default-language:   Haskell2010
+  default-extensions:
+    LambdaCase
+    MultiWayIf
+    NamedFieldPuns
+    PackageImports
+    RecordWildCards
+    ScopedTypeVariables
+    StrictData
+    TupleSections
+
+  ghc-options:
+    -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns
+    -fwarn-incomplete-record-updates
+
+  build-depends:      ghcup
+
+  if flag(internal-downloader)
+    cpp-options: -DINTERNAL_DOWNLOADER
+
+  if flag(tui)
+    cpp-options:   -DBRICK
+
+  if os(windows)
+    cpp-options: -DIS_WINDOWS
+
+  else
+    build-depends:  unix ^>=2.7 || ^>=2.8
+
+library ghcup-tui
+  import:             app-common-depends
+  exposed-modules:
+    GHCup.BrickMain
+    GHCup.Brick.Widgets.Navigation
+    GHCup.Brick.Widgets.Tutorial
+    GHCup.Brick.Widgets.KeyInfo
+    GHCup.Brick.Widgets.SectionList
+    GHCup.Brick.Widgets.Menu
+    GHCup.Brick.Widgets.Menus.Context
+    GHCup.Brick.Widgets.Menus.AdvanceInstall
+    GHCup.Brick.Widgets.Menus.CompileGHC
+    GHCup.Brick.Widgets.Menus.CompileHLS
+    GHCup.Brick.Actions
+    GHCup.Brick.App
+    GHCup.Brick.BrickState
+    GHCup.Brick.Attributes
+    GHCup.Brick.Common
+
+  hs-source-dirs:     lib-tui
+  default-language:   Haskell2010
+  default-extensions:
+    LambdaCase
+    MultiWayIf
+    NamedFieldPuns
+    PackageImports
+    RecordWildCards
+    ScopedTypeVariables
+    StrictData
+    TupleSections
+
+  ghc-options:
+    -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns
+    -fwarn-incomplete-record-updates
+
+  build-depends:
+    , ghcup
+    , brick         >=2.1 && <2.8
+    , vty           ^>=6.0 || ^>=6.1 || ^>=6.2
+
+  if !flag(tui)
+    buildable: False
+
+  if os(windows)
+    cpp-options: -DIS_WINDOWS
+
+  else
+    build-depends:  unix ^>=2.7 || ^>=2.8
+
+executable ghcup
+  import:             app-common-depends
+  main-is:            Main.hs
+
+  hs-source-dirs:     app/ghcup
+  default-language:   Haskell2010
+  default-extensions:
+    LambdaCase
+    MultiWayIf
+    NamedFieldPuns
+    PackageImports
+    RecordWildCards
+    ScopedTypeVariables
+    StrictData
+    TupleSections
+
+  ghc-options:
+    -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns
+    -fwarn-incomplete-record-updates -threaded
+
+  build-depends:
+    , ghcup
+    , ghcup-optparse
+
+  if flag(internal-downloader)
+    cpp-options: -DINTERNAL_DOWNLOADER
+
+  if flag(tui)
+    cpp-options:   -DBRICK
+    build-depends:
+      , ghcup-tui
+      , transformers  ^>=0.5 || ^>=0.6
+
+  if os(windows)
+    cpp-options: -DIS_WINDOWS
+  else
+    build-depends: unix ^>=2.7 || ^>=2.8
+
+  if flag(no-exe)
+    buildable: False
+
+test-suite ghcup-test
+  type:               exitcode-stdio-1.0
+  main-is:            Main.hs
+  build-tool-depends: hspec-discover:hspec-discover -any
+  hs-source-dirs:     test/ghcup-test
+  other-modules:
+    GHCup.ArbitraryTypes
+    GHCup.Prelude.File.Posix.TraversalsSpec
+    GHCup.Types.JSONSpec
+    GHCup.Utils.FileSpec
+    Spec
+
+  default-language:   Haskell2010
+  default-extensions:
+    LambdaCase
+    MultiWayIf
+    PackageImports
+    RecordWildCards
+    ScopedTypeVariables
+    TupleSections
+
+  ghc-options:
+    -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns
+    -fwarn-incomplete-record-updates
+
+  build-depends:
+    , base                      >=4.12    && <5
+    , bytestring                >=0.10    && <0.13
+    , containers                ^>=0.6 || ^>=0.7
+    , conduit                   ^>=1.3
+    , directory                 ^>=1.3.6.0
+    , filepath                  >=1.4.101.0
+    , generic-arbitrary         ^>=0.1.0 || ^>=0.2.2
+    , ghcup
+    , hspec                     >=2.7.10  && <2.12
+    , hspec-golden-aeson        ^>=0.9
+    , QuickCheck                ^>=2.14.1 || ^>=2.15
+    , quickcheck-arbitrary-adt  ^>=0.3.1.0
+    , text                      ^>=2.0 || ^>=2.1
+    , time                      >=1.9.3   && <1.15
+    , uri-bytestring            ^>=0.3.2.2
+    , versions                   >=6.0.5      && <6.1
+
+  if os(windows)
+    cpp-options: -DIS_WINDOWS
+
+  else
+    build-depends: unix ^>=2.7 || ^>=2.8
+
+test-suite ghcup-optparse-test
+  type:             exitcode-stdio-1.0
+  hs-source-dirs:   test/optparse-test
+  main-is:          Main.hs
+  other-modules:
+    ChangeLogTest
+    CompileTest
+    ConfigTest
+    GCTest
+    InstallTest
+    ListTest
+    OtherCommandTest
+    RmTest
+    RunTest
+    SetTest
+    UnsetTest
+    UpgradeTest
+    Utils
+    WhereisTest
+
+  if os(windows)
+    cpp-options: -DIS_WINDOWS
+
+  default-language: Haskell2010
+  ghc-options:      -Wall
+  build-depends:
+    , base
+    , ghcup
+    , ghcup-optparse
+    , optparse-applicative
+    , tasty
+    , tasty-hunit
+    , template-haskell
+    , text
+    , uri-bytestring
+    , versions
revision 2
 cabal-version:      2.4
 name:               ghcup
 version:            0.1.40.0
-x-revision:         1
+x-revision:         2
 license:            LGPL-3.0-only
 license-file:       LICENSE
 copyright:          Julian Ospald 2024
     , binary                ^>=0.8.6.0 || ^>=0.9 || ^>=0.10
     , bytestring            >=0.10       && <0.13
     , bz2                   ^>=1.0.1.1
-    , Cabal                 ^>=3.0.0.0 || ^>=3.2.0.0 || ^>=3.4.0.0 || ^>=3.6.0.0 || ^>=3.8.0.0 || ^>= 3.10.0.0
-    , Cabal-syntax   ^>=3.6.0.0 || ^>=3.8.0.0 || ^>= 3.10.0.0 || ^>= 3.12.0.0
+    , Cabal                 ^>=3.0.0.0 || ^>=3.2.0.0 || ^>=3.4.0.0 || ^>=3.6.0.0 || ^>=3.8.0.0 || ^>= 3.10.0.0 || ^>= 3.12.0.0 || ^>= 3.14.0.0
+    , Cabal-syntax          ^>=3.6.0.0 || ^>=3.8.0.0 || ^>= 3.10.0.0 || ^>= 3.12.0.0 || ^>= 3.14.0.0
     , case-insensitive      ^>=1.2.1.0
     , casing                ^>=0.1.4.1
-    , containers            ^>=0.6
+    , containers            ^>=0.6 || ^>=0.7
     , conduit               ^>=1.3
     , conduit-extra         ^>=1.3
     , cryptohash-sha256     ^>=0.11.101.0
revision 3
 cabal-version:      2.4
 name:               ghcup
 version:            0.1.40.0
-x-revision:         2
+x-revision: 3
 license:            LGPL-3.0-only
 license-file:       LICENSE
 copyright:          Julian Ospald 2024
     , text                   ^>=2.0 || ^>=2.1
     , time                   >=1.9.3    && <1.15
     , unordered-containers   ^>=0.2
-    , uri-bytestring         ^>=0.3.2.2
+    , uri-bytestring         ^>=0.4.0.0
     , utf8-string            ^>=1.0
     , vector                 >=0.12     && <0.14
     , versions               >=6.0.5      && <6.1
     , transformers          ^>=0.5 || ^>=0.6
     , unliftio-core         ^>=0.2.0.1
     , unordered-containers  ^>=0.2.10.0
-    , uri-bytestring        ^>=0.3.2.2
+    , uri-bytestring        ^>=0.4.0.0
     , utf8-string           ^>=1.0
     , vector                 >=0.12     && <0.14
     , versions               >=6.0.5      && <6.1
     , quickcheck-arbitrary-adt  ^>=0.3.1.0
     , text                      ^>=2.0 || ^>=2.1
     , time                      >=1.9.3   && <1.15
-    , uri-bytestring            ^>=0.3.2.2
+    , uri-bytestring            ^>=0.4.0.0
     , versions                   >=6.0.5      && <6.1
 
   if os(windows)