hnix-0.17.0.1_pre20240218haskell
download
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# ebuild generated by hackport 0.9.0.0.9999
#hackport: flags: -profiling
CABAL_FEATURES="lib profile haddock hoogle hscolour test-suite"
inherit haskell-cabal
DESCRIPTION="Haskell implementation of the Nix language"
HOMEPAGE="https://github.com/haskell-nix/hnix#readme"
GIT_REPO="https://github.com/haskell-nix/hnix"
GIT_COMMIT="3f334d9b5a8b1044df850167b1b459e5649868f3" # 2024-02-18
GIT_P="${PN}-${GIT_COMMIT}"
# <https://github.com/haskell-nix/hnix/pull/1112> retrieved 2025-02-14
PATCH_GIT_REPO="https://github.com/sorki/hnix"
PATCH_GIT_COMMIT_001="0fdd4d2addfb1f85c3c79a7bb44450c1e6b25b93"
PATCH_GIT_COMMIT_002="155163453cd8165f93df87f617a0661e5df0d0e0"
SRC_URI="
${GIT_REPO}/archive/${GIT_COMMIT}.tar.gz -> ${GIT_P}.tar.gz
${PATCH_GIT_REPO}/commit/${PATCH_GIT_COMMIT_001}.patch
-> ${GIT_P}-adapt-to-new-hnix-store-001.patch
${PATCH_GIT_REPO}/commit/${PATCH_GIT_COMMIT_002}.patch
-> ${GIT_P}-adapt-to-new-hnix-store-002.patch
"
S="${WORKDIR}/${GIT_P}"
CABAL_FILE="${S}/${PN}.cabal"
LICENSE="BSD"
SLOT="0/${PV}"
KEYWORDS="~amd64"
IUSE="+executable +optimize"
PATCHES+=(
"${DISTDIR}/${GIT_P}-adapt-to-new-hnix-store-001.patch"
"${DISTDIR}/${GIT_P}-adapt-to-new-hnix-store-002.patch"
"${FILESDIR}/${PN}-0.17.0.1_pre20240218-add-executable-flag.patch"
"${FILESDIR}/${PN}-0.17.0.1_pre20240218-disable-nix-instantiate-tests.patch"
)
CABAL_CHDEPS=(
'extra >= 1.7 && < 1.8' 'extra >= 1.7'
)
RDEPEND="
>=dev-haskell/base16-bytestring-0.1.1:=[profile?] <dev-haskell/base16-bytestring-1.1:=[profile?]
>=dev-haskell/comonad-5.0.4:=[profile?] <dev-haskell/comonad-5.1:=[profile?]
dev-haskell/constraints-extras:=[profile?]
dev-haskell/crypton:=[profile?]
dev-haskell/data-default-class:=[profile?]
>=dev-haskell/data-fix-0.3.0:=[profile?] <dev-haskell/data-fix-0.4:=[profile?]
>dev-haskell/dependent-sum-0.7:=[profile?]
>=dev-haskell/deriving-compat-0.3:=[profile?] <dev-haskell/deriving-compat-0.7:=[profile?]
dev-haskell/dlist:=[profile?]
>=dev-haskell/extra-1.7:=[profile?]
>=dev-haskell/free-5.1:=[profile?] <dev-haskell/free-5.3:=[profile?]
>=dev-haskell/gitrev-1.1.0:=[profile?] <dev-haskell/gitrev-1.4:=[profile?]
>=dev-haskell/hashable-1.2.5:=[profile?] <dev-haskell/hashable-1.6:=[profile?]
>=dev-haskell/hashing-0.1.0:=[profile?] <dev-haskell/hashing-0.2:=[profile?]
>=dev-haskell/hnix-store-core-0.8.0:=[profile?] <dev-haskell/hnix-store-core-0.9:=[profile?]
>=dev-haskell/hnix-store-nar-0.1.0:=[profile?] <dev-haskell/hnix-store-nar-0.2:=[profile?]
>=dev-haskell/hnix-store-readonly-0.1.0:=[profile?] <dev-haskell/hnix-store-readonly-0.2:=[profile?]
>=dev-haskell/hnix-store-remote-0.7.0:=[profile?] <dev-haskell/hnix-store-remote-0.8:=[profile?]
>=dev-haskell/http-client-tls-0.3.5:=[profile?] <dev-haskell/http-client-tls-0.4:=[profile?]
>=dev-haskell/http-types-0.12.2:=[profile?] <dev-haskell/http-types-0.13:=[profile?]
>=dev-haskell/lens-family-1.2.2:=[profile?] <dev-haskell/lens-family-2.2:=[profile?]
>=dev-haskell/lens-family-core-1.2.2:=[profile?] <dev-haskell/lens-family-core-2.2:=[profile?]
>=dev-haskell/lens-family-th-0.5.0:=[profile?] <dev-haskell/lens-family-th-0.6:=[profile?]
>=dev-haskell/megaparsec-7.0:=[profile?] <dev-haskell/megaparsec-9.7:=[profile?]
>=dev-haskell/monad-control-1.0.2:=[profile?] <dev-haskell/monad-control-1.1:=[profile?]
>=dev-haskell/monadlist-0.0.2:=[profile?] <dev-haskell/monadlist-0.1:=[profile?]
>=dev-haskell/neat-interpolation-0.4:=[profile?] <dev-haskell/neat-interpolation-0.6:=[profile?]
>=dev-haskell/optparse-applicative-0.14.3:=[profile?] <dev-haskell/optparse-applicative-0.19:=[profile?]
>=dev-haskell/parser-combinators-1.0.1:=[profile?] <dev-haskell/parser-combinators-1.4:=[profile?]
>=dev-haskell/pretty-show-1.9.5:=[profile?] <dev-haskell/pretty-show-1.11:=[profile?]
>=dev-haskell/prettyprinter-1.7.0:=[profile?] <dev-haskell/prettyprinter-1.8:=[profile?]
>=dev-haskell/ref-tf-0.5:=[profile?] <dev-haskell/ref-tf-0.6:=[profile?]
>=dev-haskell/regex-tdfa-1.2.3:=[profile?] <dev-haskell/regex-tdfa-1.4:=[profile?]
>=dev-haskell/relude-1.0.0:=[profile?] <dev-haskell/relude-1.3:=[profile?]
>=dev-haskell/scientific-0.3.6:=[profile?] <dev-haskell/scientific-0.4:=[profile?]
>=dev-haskell/semialign-1.2:=[profile?] <dev-haskell/semialign-1.4:=[profile?]
>=dev-haskell/serialise-0.2.1:=[profile?] <dev-haskell/serialise-0.3:=[profile?]
>=dev-haskell/some-1.0.1:=[profile?] <dev-haskell/some-1.1:=[profile?]
>=dev-haskell/split-0.2.3:=[profile?] <dev-haskell/split-0.3:=[profile?]
>=dev-haskell/syb-0.7:=[profile?] <dev-haskell/syb-0.8:=[profile?]
>=dev-haskell/text-1.2.3:=[profile?] <dev-haskell/text-2.2:=[profile?]
>=dev-haskell/th-lift-instances-0.1:=[profile?] <dev-haskell/th-lift-instances-0.2:=[profile?]
>=dev-haskell/these-1.0.1:=[profile?] <dev-haskell/these-1.3:=[profile?]
>=dev-haskell/transformers-base-0.4.5:=[profile?] <dev-haskell/transformers-base-0.5:=[profile?]
>=dev-haskell/unix-compat-0.4.3:=[profile?] <dev-haskell/unix-compat-0.8:=[profile?]
>=dev-haskell/unordered-containers-0.2.14:=[profile?] <dev-haskell/unordered-containers-0.3:=[profile?]
>=dev-haskell/vector-0.12.0:=[profile?] <dev-haskell/vector-0.14:=[profile?]
>=dev-haskell/xml-1.3.14:=[profile?] <dev-haskell/xml-1.4:=[profile?]
>=dev-lang/ghc-9.0.2:=
|| (
( >=dev-haskell/aeson-1.4.2 <dev-haskell/aeson-1.6 )
( >=dev-haskell/aeson-2.0 <dev-haskell/aeson-2.3 )
)
dev-haskell/aeson:=[profile?]
|| (
( >=dev-haskell/http-client-0.5.14 <dev-haskell/http-client-0.6 )
( >=dev-haskell/http-client-0.6.4 <dev-haskell/http-client-0.8 )
)
dev-haskell/http-client:=[profile?]
|| (
( >=dev-haskell/logict-0.6.0 <dev-haskell/logict-0.7 )
( >=dev-haskell/logict-0.7.0.2 <dev-haskell/logict-0.9 )
)
dev-haskell/logict:=[profile?]
executable? (
>=dev-haskell/haskeline-0.8.0.0:=[profile?] <dev-haskell/haskeline-0.9:=[profile?]
>=dev-haskell/repline-0.4.0.0:=[profile?] <dev-haskell/repline-0.5:=[profile?]
)
"
DEPEND="${RDEPEND}
>=dev-haskell/cabal-3.4.1.0
test? ( dev-haskell/diff
dev-haskell/glob
dev-haskell/hedgehog
dev-haskell/tasty
dev-haskell/tasty-hedgehog
dev-haskell/tasty-hunit
dev-haskell/tasty-th )
"
src_prepare() {
# These tests are expecting some kind of socket to be available (on nix?)
# Exception: Network.Socket.connect: <socket: 8>: does not exist
local t bad_tests=(
eval-okay-path.nix
eval-okay-eq-derivations.{exp,nix}
eval-okay-context-introspection.{exp,nix}
eval-okay-context.{exp,nix}
)
for t in "${bad_tests[@]}"; do
rm -v "${S}/data/nix/tests/lang/${t}" || die
done
haskell-cabal_src_prepare
}
src_configure() {
haskell-cabal_src_configure \
$(cabal_flag executable executable) \
$(cabal_flag optimize optimize) \
--flag=-profiling
}