haskell-packaging: End support for library packages

- Now we use cabal (comparable to rust's cargo) to build binary packages.

Reason:
- Haskell's cabal packaging system is like rust's cargo. Every packages
  depends upon some specific version of other library. Hence, it is
  hard to maintain each and every version.
- Patching packages so that they use latest of dependencies breaks
  compatibility.

Benefits:
- Enables building very large packages like `pandoc`.
- Reduces disk space used.
- Lesser packages to maintain.

Signed-off-by: Aditya Alok <alok@termux.dev>
This commit is contained in:
Aditya Alok 2023-01-23 22:27:05 +05:30
parent 49112c5146
commit 33b1397f36
No known key found for this signature in database
GPG Key ID: 345AE134142077D8
71 changed files with 42 additions and 784 deletions

View File

@ -317,22 +317,7 @@ termux_step_post_massage() {
# Hook function to create {pre,post}install, {pre,post}rm-scripts and similar
termux_step_create_debscripts() {
# Create debscripts for haskell packages.
if ls "${TERMUX_PKG_SRCDIR}"/*.cabal &>/dev/null && [ "${TERMUX_PKG_IS_HASKELL_LIB}" = true ]; then
cat <<-EOF >./postinst
#!${TERMUX_PREFIX}/bin/sh
sh ${TERMUX_PREFIX}/share/haskell/register/${TERMUX_PKG_NAME}.sh
EOF
cat <<-EOF >./prerm
#!${TERMUX_PREFIX}/bin/sh
if [ "${TERMUX_PACKAGE_FORMAT}" = "pacman" ] || [ "\$1" = "remove" ] || [ "\$1" = "update" ]; then
sh ${TERMUX_PREFIX}/share/haskell/unregister/${TERMUX_PKG_NAME}.sh
fi
EOF
else
return 0
fi
return
}
# Convert Debian maintainer scripts into pacman-compatible installation hooks.

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskell/aeson"
TERMUX_PKG_DESCRIPTION="Fast JSON parsing and encoding"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="2.0.3.0"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/aeson-${TERMUX_PKG_VERSION}/aeson-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="19760a2b84764fa3cee65c63df0c80d45497e2f0c3b95d4e6dc2083b8604b325"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-semialign, haskell-dlist, haskell-attoparsec, haskell-strict, haskell-time-compat, haskell-unordered-containers, haskell-quickcheck, haskell-onetuple, haskell-tagged, haskell-th-abstraction, haskell-indexed-traversable, haskell-vector, haskell-data-fix, haskell-primitive, haskell-base-compat-batteries, haskell-scientific, haskell-uuid-types, haskell-witherable, haskell-hashable, haskell-these, haskell-text-short"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://hackage.haskell.org/package/assoc"
TERMUX_PKG_DESCRIPTION="swap and assoc: Symmetric and Semigroupy Bifunctors"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="1.0.2"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/assoc-${TERMUX_PKG_VERSION}/assoc-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="d8988dc6e8718c7a3456515b769c9336aeeec730cf86fc5175247969ff8f144f"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-tagged, haskell-bifunctors"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/simonmar/async"
TERMUX_PKG_DESCRIPTION="Run IO operations asynchronously and wait for their results"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="2.2.4"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/async-${TERMUX_PKG_VERSION}/async-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-hashable"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/bgamari/attoparsec"
TERMUX_PKG_DESCRIPTION="Fast combinator parsing for bytestrings and text"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.14.4"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/attoparsec-${TERMUX_PKG_VERSION}/attoparsec-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="3f337fe58624565de12426f607c23e60c7b09c86b4e3adfc827ca188c9979e6c"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-scientific"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://hackage.haskell.org/package/base-compat-batteries"
TERMUX_PKG_DESCRIPTION="base-compat with extra batteries"
TERMUX_PKG_LICENSE="MIT"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.12.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/base-compat-batteries-${TERMUX_PKG_VERSION}/base-compat-batteries-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="f98f3cdd8231edb4826744904d61f7672b9b628c7072c45684d3f7f1f55d838b"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-base-compat, haskell-onetuple"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://hackage.haskell.org/package/base-compat"
TERMUX_PKG_DESCRIPTION="A compatibility layer for base"
TERMUX_PKG_LICENSE="MIT"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.12.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/base-compat-${TERMUX_PKG_VERSION}/base-compat-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="fb683cb4041b88cab1d0849f70ebd26b342c734a9ef6f75233c1602d53a015fd"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskell-compat/base-orphans#readme"
TERMUX_PKG_DESCRIPTION="Backwards-compatible orphan instances for base"
TERMUX_PKG_LICENSE="MIT"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.8.6"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/base-orphans-${TERMUX_PKG_VERSION}/base-orphans-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="20a21c4b7adb0fd844b25e196241467406a28286b021f9b7a082ab03fa8015eb"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskell/base16-bytestring"
TERMUX_PKG_DESCRIPTION="RFC 4648-compliant Base16 encodings for ByteStrings"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="1.0.2.0"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/base16-bytestring-${TERMUX_PKG_VERSION}/base16-bytestring-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskell/base64-bytestring"
TERMUX_PKG_DESCRIPTION="Fast base64 encoding and decoding for ByteStrings"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="1.2.1.0"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/base64-bytestring-${TERMUX_PKG_VERSION}/base64-bytestring-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/ekmett/bifunctors/"
TERMUX_PKG_DESCRIPTION="Bifunctors"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="5.5.11"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/bifunctors-${TERMUX_PKG_VERSION}/bifunctors-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="2b6b9672faab649995cf4c885f353b6638b6daee467a9ace40a7fc773831091c"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-base-orphans, haskell-comonad, haskell-th-abstraction, haskell-tagged"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://www.haskell.org/cabal/"
TERMUX_PKG_DESCRIPTION="A library for working with .cabal files"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="3.6.0.0"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/Cabal-syntax-${TERMUX_PKG_VERSION}/Cabal-syntax-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="ca25e5fc601397565fa857f1aa477740fac7f43d659e77c4d9b1485dca239251"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-cabal"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://www.haskell.org/cabal/"
TERMUX_PKG_DESCRIPTION="A framework for packaging Haskell software"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="3.6.2.0"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/Cabal-${TERMUX_PKG_VERSION}/Cabal-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="9e903d06a7fb0893c6f303199e737a7d555fbb5e309be8bcc782b4eb2717bc42"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,33 +0,0 @@
--- Cabal-3.6.2.0/src/Distribution/Simple.hs 2001-09-09 07:16:40.000000000 +0530
+++ Cabal-3.6.2.0-patch/src/Distribution/Simple.hs 2022-02-17 23:18:09.477872143 +0530
@@ -108,10 +108,20 @@
import Distribution.Compat.Environment (getEnvironment)
import Distribution.Compat.GetShortPathName (getShortPathName)
-import Data.List (unionBy, (\\))
+import Data.List (unionBy, drop, take, isInfixOf, (\\))
import Distribution.PackageDescription.Parsec
+correctHostTriplet :: String -> String
+correctHostTriplet s = do
+ if isInfixOf "-android" s
+ then
+ let arch = take (length s -8) ( drop 0 s ) -- drop "-android"
+ in
+ if arch == "arm" then "armv7a" else arch ++ "-linux-"
+ ++ if arch == "arm" then "androideabi" else "android"
+ else s
+
-- | A simple implementation of @main@ for a Cabal setup script.
-- It reads the package description file using IO, and performs the
-- action specified on the command line.
@@ -722,7 +732,7 @@
overEnv = ("CFLAGS", Just cflagsEnv) :
[("PATH", Just pathEnv) | not (null extraPath)]
hp = hostPlatform lbi
- maybeHostFlag = if hp == buildPlatform then [] else ["--host=" ++ show (pretty hp)]
+ maybeHostFlag = if hp == buildPlatform then [] else ["--host=" ++ correctHostTriplet (show (pretty hp))]
args' = configureFile':args ++ ["CC=" ++ ccProgShort] ++ maybeHostFlag
shProg = simpleProgram "sh"
progDb = modifyProgramSearchPath

View File

@ -1,11 +0,0 @@
--- Cabal-3.6.2.0/src/Distribution/Simple/InstallDirs.hs 2001-09-09 07:16:40.000000000 +0530
+++ Cabal-3.6.2.0-patch/src/Distribution/Simple/InstallDirs.hs 2022-02-17 23:25:55.447871965 +0530
@@ -193,7 +193,7 @@
else case buildOS of
Windows -> do windowsProgramFilesDir <- getWindowsProgramFilesDir
return (windowsProgramFilesDir </> "Haskell")
- _ -> return "/usr/local"
+ _ -> return "@TERMUX_PREFIX@"
installLibDir <-
case buildOS of
Windows -> return "$prefix"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/ekmett/comonad/"
TERMUX_PKG_DESCRIPTION="Comonads"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="5.0.8"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/comonad-${TERMUX_PKG_VERSION}/comonad-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="ef6cdf2cc292cc43ee6aa96c581b235fdea8ab44a0bffb24dc79ae2b2ef33d13"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-tagged, haskell-distributive, haskell-transformers-compat, haskell-indexed-traversable"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/ekmett/contravariant/"
TERMUX_PKG_DESCRIPTION="Contravariant functors"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="1.5.5"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/contravariant-${TERMUX_PKG_VERSION}/contravariant-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="062fd66580d7aad0b5ba93e644ffa7feee69276ef50f20d4ed9f1deb7642dffa"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-statevar"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/hvr/cryptohash-sha256"
TERMUX_PKG_DESCRIPTION="Fast, pure and practical SHA-256 implementation"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.11.102.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/cryptohash-sha256-${TERMUX_PKG_VERSION}/cryptohash-sha256-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/spell-music/data-fix"
TERMUX_PKG_DESCRIPTION="Fixpoint data types"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.3.2"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/data-fix-${TERMUX_PKG_VERSION}/data-fix-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="3a172d3bc0639c327345e965f9d9023e099425814b28dcdb7b60ff66d66219cc"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-hashable"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://hackage.haskell.org/package/Diff"
TERMUX_PKG_DESCRIPTION="O(ND) diff algorithm in haskell"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.4.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/Diff-${TERMUX_PKG_VERSION}/Diff-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="fd5e4aaac7219bcbb14834fb8580ebe0aae905958d0ad74f5338ea290b372670"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/ekmett/distributive/"
TERMUX_PKG_DESCRIPTION="Distributive functors -- Dual to Traversable"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.6.2.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/distributive-${TERMUX_PKG_VERSION}/distributive-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="d7351392e078f58caa46630a4b9c643e1e2e9dddee45848c5c8358e7b1316b91"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-base-orphans, haskell-tagged"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/spl/dlist"
TERMUX_PKG_DESCRIPTION="Difference lists"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="1.0"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/dlist-${TERMUX_PKG_VERSION}/dlist-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="173d637328bb173fcc365f30d29ff4a94292a1e0e5558aeb3dfc11de81510115"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/RyanGlScott/echo"
TERMUX_PKG_DESCRIPTION="A cross-platform, cross-console way to handle echoing terminal input"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.1.4"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/echo-${TERMUX_PKG_VERSION}/echo-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="http://thoughtpolice.github.com/hs-ed25519"
TERMUX_PKG_DESCRIPTION="Ed25519 cryptographic signatures"
TERMUX_PKG_LICENSE="MIT"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.0.5.0"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/ed25519-${TERMUX_PKG_VERSION}/ed25519-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/phadej/edit-distance"
TERMUX_PKG_DESCRIPTION="Levenshtein and restricted Damerau-Levenshtein edit distances"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.2.2.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/edit-distance-${TERMUX_PKG_VERSION}/edit-distance-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-random"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskell/hackage-security"
TERMUX_PKG_DESCRIPTION="Hackage security library"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.6.2.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/hackage-security-${TERMUX_PKG_VERSION}/hackage-security-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="bf22cd16dde7d6b7130463f4d7324b64a2964d9ef3f523df97d7cb98544d64a8"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-zlib, haskell-ed25519, haskell-network-uri, haskell-lukko, haskell-network, haskell-cabal, haskell-base64-bytestring, haskell-tar, haskell-cryptohash-sha256, haskell-base16-bytestring, haskell-cabal-syntax"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskell-unordered-containers/hashable"
TERMUX_PKG_DESCRIPTION="A class for types that can be converted to a hash value"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="1.3.5.0"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/hashable-${TERMUX_PKG_VERSION}/hashable-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="baaad82cd4271b197016bdbe76f22d5c3d3913fe38534cec7d817db9bae19886"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskell/HTTP"
TERMUX_PKG_DESCRIPTION="A library for client-side HTTP"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="4000.3.16"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/HTTP-${TERMUX_PKG_VERSION}/HTTP-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="d6091c037871ac3d08d021c906206174567499d5a26a6cb804cf530cd590fe2d"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-network-uri, haskell-network"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://hackage.haskell.org/package/indexed-traversable-instances"
TERMUX_PKG_DESCRIPTION="More instances of FunctorWithIndex, FoldableWithIndex, TraversableWithIndex"
TERMUX_PKG_LICENSE="BSD 2-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.1.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/indexed-traversable-instances-${TERMUX_PKG_VERSION}/indexed-traversable-instances-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="100ed1023b541328b04bcec0964b9f9d5fc93285fc23a2ac6873bf8597439a44"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-vector, haskell-onetuple, haskell-tagged, haskell-indexed-traversable, haskell-unordered-containers"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://hackage.haskell.org/package/indexed-traversable"
TERMUX_PKG_DESCRIPTION="FunctorWithIndex, FoldableWithIndex, TraversableWithIndex"
TERMUX_PKG_LICENSE="BSD 2-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.1.2"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/indexed-traversable-${TERMUX_PKG_VERSION}/indexed-traversable-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="516858ee7198b1fed1b93c665157f9855fd947379db7f115d48c1b0d670e698d"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskellari/integer-logarithms"
TERMUX_PKG_DESCRIPTION="Integer logarithms"
TERMUX_PKG_LICENSE="MIT"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="1.0.3.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/integer-logarithms-${TERMUX_PKG_VERSION}/integer-logarithms-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="9b0a9f9fab609b15cd015865721fb05f744a1bc77ae92fd133872de528bbea7f"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://hackage.haskell.org/package/lukko"
TERMUX_PKG_DESCRIPTION="File locking"
TERMUX_PKG_LICENSE="GPL-2.0, GPL-3.0, BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.1.1.3"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/lukko-${TERMUX_PKG_VERSION}/lukko-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="a80efb60cfa3dae18682c01980d76d5f7e413e191cd186992e1bf7388d48ab1f"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskell/network-uri"
TERMUX_PKG_DESCRIPTION="URI manipulation"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="2.6.4.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/network-uri-${TERMUX_PKG_VERSION}/network-uri-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="57856db93608a4d419f681b881c9b8d4448800d5a687587dc37e8a9e0b223584"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-th-compat"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskell/network"
TERMUX_PKG_DESCRIPTION="Low-level networking interface"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="3.1.2.7"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/network-${TERMUX_PKG_VERSION}/network-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="7f7620fef1a1af3d3d6747f510e73223a5c600e7d7fd9ace073d1222bdc63d85"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://hackage.haskell.org/package/OneTuple"
TERMUX_PKG_DESCRIPTION="Singleton Tuple"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.3.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/OneTuple-${TERMUX_PKG_VERSION}/OneTuple-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="98853682d52fb4cc37a45cd186fbd77cf2565d3df5171acc4cf026427e103eef"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-base-orphans, haskell-hashable"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskell/primitive"
TERMUX_PKG_DESCRIPTION="Primitive memory-related operations"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.7.3.0"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/primitive-${TERMUX_PKG_VERSION}/primitive-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="3c0cfda67f1ee6f7f65108ad6f973b5bbb35ddba34b3c87746a7448f787501dc"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/nick8325/quickcheck"
TERMUX_PKG_DESCRIPTION="Automatic testing of Haskell programs"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="2.14.2"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/QuickCheck-${TERMUX_PKG_VERSION}/QuickCheck-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-splitmix, haskell-random"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://hackage.haskell.org/package/random"
TERMUX_PKG_DESCRIPTION="Pseudo-random number generation"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="1.2.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/random-${TERMUX_PKG_VERSION}/random-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="265c768fc5f2ca53cde6a87e706b4448cad474c3deece933c103f24453661457"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-splitmix"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://wiki.haskell.org/Regular_expressions"
TERMUX_PKG_DESCRIPTION="Common 'Text.Regex.*' API for Regex matching"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.94.0.2"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/regex-base-${TERMUX_PKG_VERSION}/regex-base-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://hackage.haskell.org/package/regex-posix"
TERMUX_PKG_DESCRIPTION="POSIX Backend for 'Text.Regex' (regex-base)"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.96.0.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/regex-posix-${TERMUX_PKG_VERSION}/regex-posix-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-regex-base"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://wiki.haskell.org/Regular_expressions"
TERMUX_PKG_DESCRIPTION="Pure Haskell Tagged DFA Backend for 'Text.Regex' (regex-base)"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="1.3.1.2"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/regex-tdfa-${TERMUX_PKG_VERSION}/regex-tdfa-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="c47a78c9da532ba0883868a1e34427318cba3cccc8e42f995834c74eea286a62"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-regex-base"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://hackage.haskell.org/package/resolv"
TERMUX_PKG_DESCRIPTION="Domain Name Service (DNS) lookup via the libresolv standard library routines"
TERMUX_PKG_LICENSE="GPL-2.0, GPL-3.0"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.1.2.0"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/resolv-${TERMUX_PKG_VERSION}/resolv-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-base16-bytestring"

View File

@ -1,24 +0,0 @@
--- resolv-0.1.2.0/cbits/hs_resolv.h 2001-09-09 07:16:40.000000000 +0530
+++ resolv-0.1.2.0-patch/cbits/hs_resolv.h 2022-02-03 20:54:49.602546255 +0530
@@ -84,12 +84,8 @@
{
assert(!s);
- if (!(_res.options & RES_INIT)) {
int rc = res_init();
if (rc) return rc;
- }
-
- _res.options |= RES_USE_DNSSEC | RES_USE_EDNS0;
return 0;
}
@@ -112,7 +108,7 @@
{
assert(!s);
- return res_send(msg, msglen, answer, anslen);
+ return -1;
}
inline static int

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/basvandijk/scientific"
TERMUX_PKG_DESCRIPTION="Numbers represented using scientific notation"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.3.7.0"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/scientific-${TERMUX_PKG_VERSION}/scientific-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="a3a121c4b3d68fb8b9f8c709ab012e48f090ed553609247a805ad070d6b343a9"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-hashable, haskell-integer-logarithms, haskell-primitive"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskellari/these"
TERMUX_PKG_DESCRIPTION="Align and Zip type-classes from the common Semialign ancestor"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="1.2.0.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/semialign-${TERMUX_PKG_VERSION}/semialign-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="d900697041ae4b0cca3243273a2b3e80bcf74d937405d6a5ff34dc33ee952132"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-vector, haskell-semigroupoids, haskell-tagged, haskell-hashable, haskell-these, haskell-indexed-traversable-instances, haskell-indexed-traversable, haskell-unordered-containers"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/ekmett/semigroupoids"
TERMUX_PKG_DESCRIPTION="Semigroupoids: Category sans id"
TERMUX_PKG_LICENSE="BSD 2-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="5.3.7"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/semigroupoids-${TERMUX_PKG_VERSION}/semigroupoids-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="6d45cdb6c58c75ca588859b80b2c92b6f48590a03e065c24ce5d767a6a963799"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-distributive, haskell-tagged, haskell-hashable, haskell-contravariant, haskell-transformers-compat, haskell-bifunctors, haskell-base-orphans, haskell-comonad, haskell-unordered-containers"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://hackage.haskell.org/package/splitmix"
TERMUX_PKG_DESCRIPTION="Fast Splittable PRNG"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.1.0.4"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/splitmix-${TERMUX_PKG_VERSION}/splitmix-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskell-opengl/StateVar"
TERMUX_PKG_DESCRIPTION="State variables"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="1.2.2"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/StateVar-${TERMUX_PKG_VERSION}/StateVar-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="5e4b39da395656a59827b0280508aafdc70335798b50e5d6fd52596026251825"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskell-strict/strict"
TERMUX_PKG_DESCRIPTION="Strict data types and String IO"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.4.0.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/strict-${TERMUX_PKG_VERSION}/strict-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="dff6abc08ad637e51891bb8b475778c40926c51219eda60fd64f0d9680226241"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-these, haskell-hashable, haskell-assoc"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/ekmett/tagged"
TERMUX_PKG_DESCRIPTION="Haskell 98 phantom types to avoid unsafely passing dummy arguments"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.8.6.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/tagged-${TERMUX_PKG_VERSION}/tagged-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="f5e0fcf95f0bb4aa63f428f2c01955a41ea1a42cfcf39145ed631f59a9616c02"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://hackage.haskell.org/package/tar"
TERMUX_PKG_DESCRIPTION="Reading, writing and manipulating '.tar' archive files"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.5.1.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/tar-${TERMUX_PKG_VERSION}/tar-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="b384449f62b2b0aa3e6d2cb1004b8060b01f21ec93e7b63e7af6d8fad8a9f1de"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://hackage.haskell.org/package/text-short"
TERMUX_PKG_DESCRIPTION="Memory-efficient representation of Unicode text strings"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.1.5"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/text-short-${TERMUX_PKG_VERSION}/text-short-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="a35ec6cde2ada084c1a050dc5885be5ab01f851b93d744cf0facbc1c18002dda"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-hashable"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/glguy/th-abstraction"
TERMUX_PKG_DESCRIPTION="Nicer interface for reified information about data types"
TERMUX_PKG_LICENSE="ISC"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.4.3.0"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/th-abstraction-${TERMUX_PKG_VERSION}/th-abstraction-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="c8bb13e31d1d22a99168536a35c66e1091a6e4274b9841a023eac52c2bd3de06"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskell-compat/th-compat"
TERMUX_PKG_DESCRIPTION="Backward- (and forward-)compatible Quote and Code types"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.1.3"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/th-compat-${TERMUX_PKG_VERSION}/th-compat-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="6b5059caf6714f47da92953badf2f556119877e09708c14e206b3ae98b8681c6"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskellari/these"
TERMUX_PKG_DESCRIPTION="An either-or-both data type"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="1.1.1.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/these-${TERMUX_PKG_VERSION}/these-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="d798c9f56e17def441e8f51e54cc11afdb3e76c6a9d1e9ee154e9a78da0bf508"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-hashable, haskell-assoc"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskellari/time-compat"
TERMUX_PKG_DESCRIPTION="Compatibility package for time"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="1.9.6.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/time-compat-${TERMUX_PKG_VERSION}/time-compat-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="ad07bb00eb9678c2136d3680752b00acc4cbc522654bb3199bf31c61ef1e6b80"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-base-orphans, haskell-hashable"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/ekmett/transformers-compat/"
TERMUX_PKG_DESCRIPTION="A small compatibility shim for the transformers library"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.7.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/transformers-compat-${TERMUX_PKG_VERSION}/transformers-compat-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="ac0b861534c14d3cfd61534f474674e3b634b8decea072ffd4d21f8b59f35080"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskell-unordered-containers/unordered-containers"
TERMUX_PKG_DESCRIPTION="Efficient hashing-based container types"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.2.17.0"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/unordered-containers-${TERMUX_PKG_VERSION}/unordered-containers-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="c49e3a6e0b6aae68c035b163e54f3521d1d65d0a3543fa46eaeddc97b4375a17"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-hashable"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskell-hvr/uuid"
TERMUX_PKG_DESCRIPTION="Type definitions for Universally Unique Identifiers"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="1.0.5"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/uuid-types-${TERMUX_PKG_VERSION}/uuid-types-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="ad68b89b7a64c07dd5c250a11be2033ee929318ff51ec7b4e4b54e1b4deba7dd"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-random, haskell-hashable"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/haskell/vector"
TERMUX_PKG_DESCRIPTION="Efficient Arrays"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.12.3.1"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/vector-${TERMUX_PKG_VERSION}/vector-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="fb4a53c02bd4d7fdf155c0604da9a5bb0f3b3bfce5d9960aea11c2ae235b9f35"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-primitive"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://github.com/fumieval/witherable"
TERMUX_PKG_DESCRIPTION="filterable traversable"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.4.2"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/witherable-${TERMUX_PKG_VERSION}/witherable-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="790d2bb274283419173bd89104439860675a9410f70f21912973ecd9098b4104"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs, haskell-vector, haskell-hashable, haskell-base-orphans, haskell-indexed-traversable-instances, haskell-indexed-traversable, haskell-unordered-containers"

View File

@ -1,9 +0,0 @@
TERMUX_PKG_HOMEPAGE="https://hackage.haskell.org/package/zlib"
TERMUX_PKG_DESCRIPTION="Compression and decompression in the gzip and zlib formats"
TERMUX_PKG_LICENSE="BSD 3-Clause"
TERMUX_PKG_MAINTAINER="Aditya Alok <alok@termux.org>"
TERMUX_PKG_VERSION="0.6.2.3"
TERMUX_PKG_SRCURL="https://hackage.haskell.org/package/zlib-${TERMUX_PKG_VERSION}/zlib-${TERMUX_PKG_VERSION}.tar.gz"
TERMUX_PKG_SHA256="807f6bddf9cb3c517ce5757d991dde3c7e319953a22c86ee03d74534bd5abc88"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="ghc-libs"

View File

@ -5,7 +5,6 @@ termux_step_configure() {
# should be executed by its own build system.
if ls "${TERMUX_PKG_SRCDIR}"/*.cabal &>/dev/null; then
[ "$TERMUX_CONTINUE_BUILD" == "true" ] && return
termux_setup_ghc_cross_compiler
termux_step_configure_haskell_build
elif [ "$TERMUX_PKG_FORCE_CMAKE" = "false" ] && [ -f "$TERMUX_PKG_SRCDIR/configure" ]; then
if [ "$TERMUX_CONTINUE_BUILD" == "true" ]; then

View File

@ -1,54 +1,34 @@
# shellcheck shell=bash
termux_step_configure_haskell_build() {
termux_setup_jailbreak_cabal
printf "%s" "Jailbreaking Cabal file..."
if jailbreak-cabal "${TERMUX_PKG_SRCDIR}"/*.cabal; then
echo "done."
else
termux_error_exit "failed."
fi
ENABLE_SHARED="--enable-shared"
if [[ "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS}" != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--disable-shared/}" ]]; then
ENABLE_SHARED=""
fi
DYNAMIC_EXECUTABLE="
--ghc-options=-dynamic
--enable-executable-dynamic
--disable-library-vanilla
"
if [[ "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS}" != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--disable-executable-dynamic/}" ]]; then
DYNAMIC_EXECUTABLE=""
fi
termux_setup_ghc_cross_compiler
termux_setup_cabal
HOST_FLAG="--host=${TERMUX_HOST_PLATFORM}"
if [[ "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS}" != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--host=/}" ]]; then
if [[ ${TERMUX_PKG_EXTRA_CONFIGURE_ARGS} != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--host=/}" ]]; then
HOST_FLAG=""
fi
LIBEXEC_FLAG="--libexecdir=${TERMUX_PREFIX}/libexec"
if [[ "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS}" != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--libexecdir=/}" ]]; then
if [[ ${TERMUX_PKG_EXTRA_CONFIGURE_ARGS} != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--libexecdir=/}" ]]; then
LIBEXEC_FLAG=""
fi
QUIET_BUILD=
if [[ "${TERMUX_QUIET_BUILD}" = true ]]; then
if [[ ${TERMUX_QUIET_BUILD} == true ]]; then
QUIET_BUILD="-v0"
fi
LIB_STRIPPING="--enable-library-stripping"
if [[ "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS}" != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--disable-library-stripping=/}" ]] || [[ "${TERMUX_DEBUG_BUILD}" = true ]]; then
if [[ ${TERMUX_PKG_EXTRA_CONFIGURE_ARGS} != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--disable-library-stripping=/}" ]] || [[ ${TERMUX_DEBUG_BUILD} == true ]]; then
LIB_STRIPPING=""
fi
EXECUTABLE_STRIPPING="--enable-executable-stripping"
if [[ "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS}" != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--disable-executable-stripping=/}" ]] || [[ "${TERMUX_DEBUG_BUILD}" = true ]]; then
if [[ ${TERMUX_PKG_EXTRA_CONFIGURE_ARGS} != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--disable-executable-stripping=/}" ]] || [[ ${TERMUX_DEBUG_BUILD} == true ]]; then
EXECUTABLE_STRIPPING=""
fi
SPLIT_SECTIONS="--enable-split-sections"
if [[ "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS}" != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--disable-split-sections=/}" ]]; then
if [[ ${TERMUX_PKG_EXTRA_CONFIGURE_ARGS} != "${TERMUX_PKG_EXTRA_CONFIGURE_ARGS/--disable-split-sections=/}" ]]; then
SPLIT_SECTIONS=""
fi
@ -111,34 +91,28 @@ termux_step_configure_haskell_build() {
# NOTE: We do not want to quote AVOID_GNULIB as we want word expansion.
# shellcheck disable=SC2086
# shellcheck disable=SC2250,SC2154,SC2248,SC2312
env $AVOID_GNULIB termux-ghc-setup configure \
env $AVOID_GNULIB cabal configure \
$TERMUX_HASKELL_OPTIMISATION \
--prefix=$TERMUX_PREFIX \
--configure-option=--disable-rpath \
--configure-option=--disable-rpath-hack \
--configure-option=--host=$HOST_FLAG \
--ghc-option=-optl-Wl,-rpath=$TERMUX_PREFIX/lib \
--ghc-option=-optl-Wl,--enable-new-dtags \
--with-compiler="$(command -v termux-ghc)" \
--with-ghc-pkg="$(command -v termux-ghc-pkg)" \
--with-hsc2hs="$(command -v termux-hsc2hs)" \
--prefix="$TERMUX_PREFIX" \
--configure-option="$HOST_FLAG" \
--ghc-options="-optl-Wl,-rpath,$TERMUX_PREFIX/lib -optl-Wl,--enable-new-dtags" \
--with-compiler="$(command -v ghc)" \
--with-ghc-pkg="$(command -v ghc-pkg)" \
--with-hsc2hs="$(command -v hsc2hs)" \
--hsc2hs-option=--cross-compile \
--with-ld=$LD \
--with-strip=$STRIP \
--with-ar=$AR \
--with-pkg-config=$PKG_CONFIG \
--extra-lib-dirs="$TERMUX_PREFIX/lib" \
--extra-include-dirs="$TERMUX_PREFIX/include" \
--with-ld="$LD" \
--with-strip="$STRIP" \
--with-ar="$AR" \
--with-pkg-config="$PKG_CONFIG" \
--with-happy="$(command -v happy)" \
--with-alex="$(command -v alex)" \
--extra-include-dirs=$TERMUX_PREFIX/include \
--extra-lib-dirs=$TERMUX_PREFIX/lib \
--disable-tests \
$TERMUX_HASKELL_LLVM_BACKEND \
$SPLIT_SECTIONS \
$EXECUTABLE_STRIPPING \
$LIB_STRIPPING \
$TERMUX_PKG_EXTRA_CONFIGURE_ARGS \
$ENABLE_SHARED \
$QUIET_BUILD \
$LIBEXEC_FLAG \
$DYNAMIC_EXECUTABLE
$TERMUX_PKG_EXTRA_CONFIGURE_ARGS
}

View File

@ -1,66 +1,12 @@
# shellcheck shell=bash
__termux_haskell_register_packages() {
# Register dependency haskell packages with termux-ghc-pkg.
echo "Registering haskell packages with ghc-pkg...(if any)"
while read DEP DEP_DIR; do
if [[ -z $DEP ]]; then
continue
elif [[ "${DEP}" == "ERROR" ]]; then
termux_error_exit "Failed to find dependencies of ${TERMUX_PKG_NAME} [Context: ${FUNCNAME[0]}]"
fi
if [[ "${DEP/haskell-/}" != "${DEP}" ]]; then
sed "s|${TERMUX_PREFIX}/bin/ghc-pkg|$(command -v termux-ghc-pkg)|g" \
"${TERMUX_PREFIX}/share/haskell/register/${DEP}.sh" | sh
termux-ghc-pkg recache
# NOTE: Above command rewrites a cache file at
# "${TERMUX_PREFIX}/lib/ghc-${TERMUX_GHC_VERSION}/package.conf.d". Since it is done after
# timestamp creation, we need to remove it in massage step.
fi
done <<<"$(
# shellcheck disable=SC2086
cd "${TERMUX_SCRIPTDIR}" &&
./scripts/buildorder.py -i "${TERMUX_PKG_BUILDER_DIR}" ${TERMUX_PACKAGES_DIRECTORIES} || echo "ERROR"
)"
}
__termux_haskell_setup_build_script() {
local runtime_folder="$1"
if ! command -v termux-ghc-setup &>/dev/null; then
if [ "${TERMUX_ON_DEVICE_BUILD}" = false ]; then
local build_type=""
if ! cat "${TERMUX_PKG_SRCDIR}"/*.cabal | grep -wq "^[bB]uild-type:" ||
cat "${TERMUX_PKG_SRCDIR}"/*.cabal | grep -wq '^[bB]uild-type:\s*[Ss]imple$'; then
build_type="simple"
elif cat "${TERMUX_PKG_SRCDIR}"/*.cabal | grep -wq '^[bB]uild-type:\s*[Cc]onfigure$'; then
build_type="configure"
elif cat "${TERMUX_PKG_SRCDIR}"/*.cabal | grep -wq '^[bB]uild-type:\s*[Mm]ake$'; then
build_type="make"
else
# Now, it must be a custom build.
# Compile custom Setup script with GHC and make it available in PATH.
termux_setup_ghc
ghc --make "${TERMUX_PKG_SRCDIR}/Setup" -o "${runtime_folder}/bin/termux-ghc-setup"
return
fi
ln -sf "$runtime_folder/bin/${build_type}_setup" \
"$runtime_folder/bin/termux-ghc-setup"
else
# On device, we always have ghc installed. So, always compile Setup script.
ghc --make "${TERMUX_PKG_SRCDIR}/Setup" -o "${runtime_folder}/bin/termux-ghc-setup"
fi
fi
}
# Utility function to setup a GHC cross-compiler toolchain targeting Android.
termux_setup_ghc_cross_compiler() {
local TERMUX_GHC_VERSION=9.2.5
local GHC_PREFIX="ghc-cross-${TERMUX_GHC_VERSION}-${TERMUX_ARCH}"
if [[ "${TERMUX_ON_DEVICE_BUILD}" == "false" ]]; then
if [[ "${TERMUX_ON_DEVICE_BUILD}" == false ]]; then
local TERMUX_GHC_RUNTIME_FOLDER
if [[ "${TERMUX_PACKAGES_OFFLINE-false}" == "true" ]]; then
if [[ "${TERMUX_PACKAGES_OFFLINE-false}" == true ]]; then
TERMUX_GHC_RUNTIME_FOLDER="${TERMUX_SCRIPTDIR}/build-tools/${GHC_PREFIX}-runtime"
else
TERMUX_GHC_RUNTIME_FOLDER="${TERMUX_COMMON_CACHEDIR}/${GHC_PREFIX}-runtime"
@ -74,11 +20,7 @@ termux_setup_ghc_cross_compiler() {
termux_error_exit "Package 'ghc-libs' is not installed. It is required by GHC cross-compiler." \
"You should specify it in 'TERMUX_PKG_BUILD_DEPENDS'."
if [[ -d "${TERMUX_GHC_RUNTIME_FOLDER}" ]]; then
__termux_haskell_setup_build_script "${TERMUX_GHC_RUNTIME_FOLDER}"
__termux_haskell_register_packages
return
fi
[[ -d "${TERMUX_GHC_RUNTIME_FOLDER}" ]] && return
local CHECKSUMS
CHECKSUMS="$(
@ -95,55 +37,25 @@ termux_setup_ghc_cross_compiler() {
"$(echo "${CHECKSUMS}" | grep -w "${TERMUX_ARCH}" | cut -d ':' -f 2)"
mkdir -p "${TERMUX_GHC_RUNTIME_FOLDER}"
tar -xf "${TERMUX_GHC_TAR}" -C "${TERMUX_GHC_RUNTIME_FOLDER}"
rm "${TERMUX_GHC_TAR}"
# Replace ghc settings with settings of the cross compiler.
# NOTE: This edits file in $TERMUX_PREFIX after timestamp creation. Remove it in massage step.
sed "s|\$topdir/bin/unlit|${TERMUX_GHC_RUNTIME_FOLDER}/lib/ghc-${TERMUX_GHC_VERSION}/bin/unlit|g" \
"${TERMUX_GHC_RUNTIME_FOLDER}/lib/ghc-${TERMUX_GHC_VERSION}/settings" > \
"${TERMUX_PREFIX}/lib/ghc-${TERMUX_GHC_VERSION}/settings"
# NOTE: Above command edits file in $TERMUX_PREFIX after timestamp is created,
# so we need to remove it in massage step.
for tool in ghc ghc-pkg hsc2hs hp2ps ghci; do
_tool="${tool}"
[[ "${tool}" == "ghci" ]] && _tool="ghc"
sed -i "s|\$executablename|${TERMUX_GHC_RUNTIME_FOLDER}/lib/ghc-${TERMUX_GHC_VERSION}/bin/${_tool}|g" \
"${TERMUX_GHC_RUNTIME_FOLDER}/bin/termux-${tool}"
for tool in ghc ghc-pkg hsc2hs hp2ps; do
sed -i "s|\$executablename|${TERMUX_GHC_RUNTIME_FOLDER}/lib/ghc-${TERMUX_GHC_VERSION}/bin/${tool}|g" \
"${TERMUX_GHC_RUNTIME_FOLDER}/bin/${tool}"
done
# GHC ships with old version, we use our own.
termux-ghc-pkg unregister Cabal
# NOTE: Above command rewrites a cache file at
# "${TERMUX_PREFIX}/lib/ghc-${TERMUX_GHC_VERSION}/package.conf.d". Since it is done after
# timestamp creation, we need to remove it in massage step.
__termux_haskell_setup_build_script "${TERMUX_GHC_RUNTIME_FOLDER}"
__termux_haskell_register_packages
rm "${TERMUX_GHC_TAR}"
else
if [[ "${TERMUX_APP_PACKAGE_MANAGER}" == "apt" ]] && "$(dpkg-query -W -f '${db:Status-Status}\n' ghc 2>/dev/null)" != "installed" ||
[[ "${TERMUX_APP_PACKAGE_MANAGER}" == "pacman" ]] && ! "$(pacman -Q ghc 2>/dev/null)"; then
echo "Package 'ghc' is not installed."
exit 1
else
local ON_DEVICE_GHC_RUNTIME="${TERMUX_COMMON_CACHEDIR}/${GHC_PREFIX}-runtime"
export PATH="${ON_DEVICE_GHC_RUNTIME}/bin:${PATH}"
if [[ -d "${ON_DEVICE_GHC_RUNTIME}" ]]; then
__termux_haskell_setup_build_script "${ON_DEVICE_GHC_RUNTIME}"
__termux_haskell_register_packages
return
fi
mkdir -p "${ON_DEVICE_GHC_RUNTIME}"/bin
for tool in ghc ghc-pkg hsc2hs hp2ps ghci; do
ln -sf "${TERMUX_PREFIX}/bin/${tool}" "${ON_DEVICE_GHC_RUNTIME}/bin/termux-${tool}"
done
__termux_haskell_setup_build_script "${ON_DEVICE_GHC_RUNTIME}"
__termux_haskell_register_packages
fi
fi
}

View File

@ -9,7 +9,7 @@ termux_step_make() {
if test -f build.ninja; then
ninja -w dupbuild=warn -j $TERMUX_MAKE_PROCESSES
elif ls ./*.cabal &>/dev/null; then
termux-ghc-setup -j$TERMUX_MAKE_PROCESSES build
cabal build
elif ls ./*akefile &>/dev/null || [ ! -z "$TERMUX_PKG_EXTRA_MAKE_ARGS" ]; then
if [ -z "$TERMUX_PKG_EXTRA_MAKE_ARGS" ]; then
make -j $TERMUX_MAKE_PROCESSES $QUIET_BUILD

View File

@ -1,3 +1,4 @@
# shellcheck disable=SC2086
termux_step_make_install() {
[ "$TERMUX_PKG_METAPACKAGE" = "true" ] && return
@ -6,25 +7,12 @@ termux_step_make_install() {
elif test -f setup.py || test -f pyproject.toml || test -f setup.cfg; then
pip install --no-deps . --prefix $TERMUX_PREFIX
elif ls ./*.cabal &>/dev/null; then
termux-ghc-setup copy
if [ "${TERMUX_PKG_IS_HASKELL_LIB}" = true ]; then
termux-ghc-setup register --gen-script
termux-ghc-setup unregister --gen-script
install -Dm744 register.sh "${TERMUX_PREFIX}"/share/haskell/register/"${TERMUX_PKG_NAME}".sh
install -Dm744 unregister.sh "${TERMUX_PREFIX}"/share/haskell/unregister/"${TERMUX_PKG_NAME}".sh
sed -i -r -e "s|$(command -v termux-ghc-pkg)|${TERMUX_PREFIX}/bin/ghc-pkg|g" \
-e "s|ghc-pkg.*update[^ ]* |&'--force' |" \
-e "s|export PATH=.*||g" \
"${TERMUX_PREFIX}"/share/haskell/register/"${TERMUX_PKG_NAME}".sh
sed -i -r -e "s|$(command -v termux-ghc-pkg)|${TERMUX_PREFIX}/bin/ghc-pkg|g" \
-e "s|export PATH=.*||g" \
-e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" \
"${TERMUX_PREFIX}"/share/haskell/unregister/"${TERMUX_PKG_NAME}".sh
fi
# Workaround until `cabal install` is fixed.
while read -r bin; do
[[ -f "$bin" ]] || termux_error_exit "'$bin', no such file. Has build completed?"
echo "INFO: Installing '$bin' component..."
cp "$bin" "$TERMUX_PREFIX/bin"
done< <(cat ./dist-newstyle/cache/plan.json | jq -r '."install-plan"[]|select(."component-name"? and (."component-name"|test("exe:.*")) and (.style == "local") )|."bin-file"')
elif ls ./*akefile &>/dev/null || [ -n "$TERMUX_PKG_EXTRA_MAKE_ARGS" ]; then
: "${TERMUX_PKG_MAKE_INSTALL_TARGET:="install"}"
# Some packages have problem with parallell install, and it does not buy much, so use -j 1.

View File

@ -128,8 +128,8 @@ termux_step_massage() {
fi
# Remove unnecessary files in haskell packages:
if [[ "${TERMUX_PKG_NAME}" != "ghc-libs" ]] && [[ "${TERMUX_PKG_NAME}" != "ghc" ]]; then
test -d ./lib/ghc-* && rm -rf ./lib/ghc-* 2>/dev/null # Remove full ghc-* dir since cross compiler installs packages in "./lib/${TERMUX_ARCH}-android-ghc-X.Y.Z"
if ! [[ $TERMUX_PKG_NAME =~ ghc|ghc-libs ]]; then
test -f ./lib/ghc-*/settings && rm -rf ./lib/ghc-*/settings
fi
# .. remove empty directories (NOTE: keep this last):

View File

@ -126,7 +126,7 @@ termux_step_setup_variables() {
TERMUX_PKG_TMPDIR=$TERMUX_TOPDIR/$TERMUX_PKG_NAME/tmp
TERMUX_PKG_SERVICE_SCRIPT=() # Fill with entries like: ("daemon name" 'script to execute'). Script is echoed with -e so can contain \n for multiple lines
TERMUX_PKG_GROUPS="" # https://wiki.archlinux.org/title/Pacman#Installing_package_groups
TERMUX_PKG_IS_HASKELL_LIB=true # by default assume haskell package is lib package as most of them will always be libs.
TERMUX_PKG_NO_SHEBANG_FIX=false # if true, skip fixing shebang accordingly to TERMUX_PREFIX
TERMUX_PKG_ON_DEVICE_BUILD_NOT_SUPPORTED=false # if the package does not support compilation on a device, then this package should not be compiled on devices
TERMUX_PKG_SETUP_PYTHON=false # setting python to compile a package
TERMUX_PYTHON_VERSION=$(. $TERMUX_SCRIPTDIR/packages/python/build.sh; echo $_MAJOR_VERSION) # get the latest version of python

View File

@ -16,11 +16,6 @@ termux_setup_toolchain_23c() {
export STRIP=llvm-strip
export NM=llvm-nm
export TERMUX_HASKELL_LLVM_BACKEND="-fllvm --ghc-option=-fllvm"
if [ "${TERMUX_ARCH}" = "i686" ]; then
TERMUX_HASKELL_LLVM_BACKEND=""
fi
export TERMUX_HASKELL_OPTIMISATION="-O"
if [ "${TERMUX_DEBUG_BUILD}" = true ]; then
TERMUX_HASKELL_OPTIMISATION="-O0"

View File

@ -17,11 +17,6 @@ termux_setup_toolchain_25c() {
export NM=llvm-nm
export CXXFILT=llvm-cxxfilt
export TERMUX_HASKELL_LLVM_BACKEND="-fllvm --ghc-option=-fllvm"
if [ "${TERMUX_ARCH}" = "i686" ]; then
TERMUX_HASKELL_LLVM_BACKEND=""
fi
export TERMUX_HASKELL_OPTIMISATION="-O"
if [ "${TERMUX_DEBUG_BUILD}" = true ]; then
TERMUX_HASKELL_OPTIMISATION="-O0"