packages feed

arch-hs-0.14: arch-hs.cabal

cabal-version:      2.4
name:               arch-hs
version:            0.14
synopsis:           Distribute hackage packages to archlinux
description:
  @arch-hs@ is a command-line program, which simplifies the process of producing
  and maintaining haskell packages for archlinux distribution by automating the
  PKGBUILD generation with the dependency resolving and template filling. Currently,
  @arch-hs@ is unstable, so packagers should not trust it 100%, but always follow the
  <https://wiki.archlinux.org/index.php/Haskell_package_guidelines Haskell package guidelines>.

homepage:           https://github.com/berberman/arch-hs
bug-reports:        https://github.com/berberman/arch-hs/issues
license:            MIT
license-file:       LICENSE
author:             berberman
maintainer:         berberman <berberman@yandex.com>
copyright:          (c) 2020-2022 berberman
category:           Distribution
build-type:         Simple
extra-source-files: data/NAME_PRESET.json
extra-doc-files:
  CHANGELOG.md
  README.md

tested-with:        GHC ==9.2.8 || ==9.4.8 || ==9.6.7 || ==9.8.4

source-repository head
  type:     git
  location: https://github.com/berberman/arch-hs.git

flag alpm
  description: Whether to use libalpm
  default:     False
  manual:      True

common common-options
  build-depends:
    , aeson                        >=1.5.4    && <2.3
    , algebraic-graphs             >=0.5      && <0.9
    , arch-web                     ^>=0.3.2
    , base                         >=4.12     && <5
    , bytestring
    , Cabal                        >=3.8      && <3.11
    , conduit                      ^>=1.3.2
    , conduit-extra                ^>=1.3.5
    , containers
    , deepseq                      ^>=1.4.4 || ^>=1.5.0
    , Diff                         ^>=0.4.0 || ^>=0.5 || ^>= 1.0
    , directory                    ^>=1.3.6
    , filepath                     ^>=1.4.2
    , hackage-db                   ^>=2.1.0
    , http-client
    , http-client-tls
    , http-types
    , megaparsec                   ^>=9.0.0   || ^>=9.1.0  || ^>=9.2.0  || ^>=9.3.0  || ^>=9.4.0  || ^>=9.5.0  || ^>=9.6.0  || ^>=9.7.0
    , microlens                    ^>=0.4.11
    , microlens-th                 ^>=0.4.3
    , neat-interpolation           ^>=0.5.1
    , optparse-simple              ^>=0.1.1.3
    , polysemy                     >=1.5.0    && <1.10
    , prettyprinter                ^>=1.7.0
    , prettyprinter-ansi-terminal  ^>=1.1.2
    , servant-client               >=0.18.2   && <0.21
    , split                        ^>=0.2.3
    , tar-conduit                  ^>=0.3.2   || ^>=0.4.0
    , template-haskell             ^>=2.18.0  || ^>=2.19.0 || ^>=2.20.0 || ^>=2.21.0
    , text

  ghc-options:
    -Wall -Wcompat -Widentities -Wincomplete-uni-patterns
    -Wincomplete-record-updates -O2 -flate-specialise
    -fspecialise-aggressively -Wredundant-constraints
    -fhide-source-paths -Wmissing-export-lists -Wpartial-fields
    -Wmissing-deriving-strategies

  default-language:   Haskell2010
  default-extensions:
    DataKinds
    FlexibleContexts
    GADTs
    LambdaCase
    PolyKinds
    RankNTypes
    ScopedTypeVariables
    TypeFamilies
    TypeOperators

  if flag(alpm)
    c-sources:        cbits/clib.c
    extra-libraries:  alpm
    include-dirs:     cbits
    install-includes: cbits/clib.h
    cpp-options:      -DALPM

library
  import:          common-options
  hs-source-dirs:  src
  autogen-modules: Paths_arch_hs
  exposed-modules:
    Distribution.ArchHs.Aur
    Distribution.ArchHs.Compat
    Distribution.ArchHs.Core
    Distribution.ArchHs.DepCheck
    Distribution.ArchHs.Exception
    Distribution.ArchHs.ExtraDB
    Distribution.ArchHs.FilesDB
    Distribution.ArchHs.Hackage
    Distribution.ArchHs.Internal.Prelude
    Distribution.ArchHs.Local
    Distribution.ArchHs.Name
    Distribution.ArchHs.Options
    Distribution.ArchHs.PkgBuild
    Distribution.ArchHs.PkgDesc
    Distribution.ArchHs.PP
    Distribution.ArchHs.RDepCheck
    Distribution.ArchHs.Types
    Distribution.ArchHs.Utils

  other-modules:
    Distribution.ArchHs.Internal.NamePresetLoader
    Paths_arch_hs

executable arch-hs
  import:         common-options
  hs-source-dirs: app
  main-is:        Main.hs
  other-modules:
    Args
    Json

  build-depends:  arch-hs
  ghc-options:    -threaded -rtsopts -with-rtsopts=-N

executable arch-hs-diff
  import:         common-options
  hs-source-dirs: diff
  main-is:        Main.hs
  other-modules:
    Args
    Diff

  build-depends:  arch-hs
  ghc-options:    -threaded -rtsopts -with-rtsopts=-N

executable arch-hs-sync
  import:         common-options
  hs-source-dirs: sync
  main-is:        Main.hs
  other-modules:
    Args
    Check
    Submit
    Submit.CSV
    Utils

  build-depends:  arch-hs
  ghc-options:    -threaded -rtsopts -with-rtsopts=-N

executable arch-hs-rdepcheck
  import:         common-options
  hs-source-dirs: rdepcheck
  main-is:        Main.hs
  other-modules:
    Args
    Check

  build-depends:  arch-hs
  ghc-options:    -threaded -rtsopts -with-rtsopts=-N

test-suite arch-hs-tests
  import:          common-options
  type:            exitcode-stdio-1.0
  hs-source-dirs:
    test
    diff
    sync

  main-is:         Main.hs
  other-modules:
    Diff
    Submit.CSV

  build-depends:
    , arch-hs
    , hspec

  ghc-options:     -threaded -rtsopts -with-rtsopts=-N