Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions dev-vcs/mercurial/Manifest
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
DIST mercurial-6.9.3.tar.gz 8670202 BLAKE2B 5427c28ff6c07ea8e907ccc474b6574dd25fea40badc960a2503ae761482150c9ac036fa54a605479ce004d73a86d2b45b6dc43d7e97ec0f321f6a5114564065 SHA512 7a40dd8af4f3f05bfb57812f0dcc132eb29dee50a688fa279529edbb9798ce5833efd7592ef8c3ed04d8ada3cb1961571c89ceeca2aa72e76045addea39509d5
DIST mercurial-7.0.2.tar.gz 8981974 BLAKE2B 1d241059565b86edae973a622aed2afc666494db6512f2721ba5172e256c9c614e391509234d18bb97f71318712af84ea6bfbc7060d1b4d9e17861bbb2701ddc SHA512 73013a05c857108dcbf0a32bae2f9a60ce89aa4bc8a6eff74d3e1da2829c3491c76e01b49d41f6ef43261cda8b2e0cb4858695d00228f832147dbe37c5f57a6e
158 changes: 158 additions & 0 deletions dev-vcs/mercurial/mercurial-7.0.2.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
# Distributed under the terms of the GNU General Public License v2

EAPI=7

PYTHON_COMPAT=( python3+ )
PYTHON_REQ_USE="threads(+)"

inherit bash-completion-r1 elisp-common eutils distutils-r1 flag-o-matic

DESCRIPTION=""
HOMEPAGE="https://www.mercurial-scm.org/"
SRC_URI="https://files.pythonhosted.org/packages/2d/d4/5be888405717a3f998250012efd6af6e928b2baf3df4f347bcd1d6c226f8/mercurial-7.0.2.tar.gz -> mercurial-7.0.2.tar.gz"

LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="*"
IUSE="+chg emacs gpg test tk zsh-completion"

RDEPEND="
app-misc/ca-certificates
dev-python/zstandard[${PYTHON_USEDEP}]
gpg? ( app-crypt/gnupg )
tk? ( dev-lang/tk )
zsh-completion? ( app-shells/zsh )"

DEPEND="emacs? ( >=app-editors/emacs-23.1:* )
test? ( app-arch/unzip
dev-python/pygments[${PYTHON_USEDEP}] )"

SITEFILE="70${PN}-gentoo.el"

# Too many tests fail #608720
RESTRICT="test"

python_prepare_all() {
# Use absolute import for zstd
sed -i -e 's/from \.* import zstd/import zstd/' \
mercurial/utils/compression.py \
mercurial/wireprotoframing.py
distutils-r1_python_prepare_all
}

python_compile() {
filter-flags -ftracer -ftree-vectorize
append-cflags -D_GNU_SOURCE
python_is_python3 || local -x CFLAGS="${CFLAGS} -fno-strict-aliasing"
distutils-r1_python_compile build_ext --no-zstd
}

python_compile_all() {
rm -r contrib/win32 || die
if use chg; then
emake -C contrib/chg
fi
if use emacs; then
cd contrib || die
elisp-compile mercurial.el || die "elisp-compile failed!"
fi
}

python_install() {
distutils-r1_python_install build_ext --no-zstd
}

python_install_all() {
distutils-r1_python_install_all

newbashcomp contrib/bash_completion hg

if use zsh-completion ; then
insinto /usr/share/zsh/site-functions
newins contrib/zsh_completion _hg
fi

dobin hgeditor
if use tk; then
dobin contrib/hgk
fi
python_foreach_impl python_doscript contrib/hg-ssh

if use emacs; then
elisp-install ${PN} contrib/mercurial.el* || die "elisp-install failed!"
elisp-site-file-install "${FILESDIR}"/${SITEFILE}
fi

local RM_CONTRIB=( hgk hg-ssh bash_completion zsh_completion plan9 *.el )

if use chg; then
dobin contrib/chg/chg
doman contrib/chg/chg.1
RM_CONTRIB+=( chg )
fi

for f in ${RM_CONTRIB[@]}; do
rm -rf contrib/${f} || die
done

dodoc -r contrib
docompress -x /usr/share/doc/${PF}/contrib
doman doc/*.?
dodoc CONTRIBUTORS hgweb.cgi

insinto /etc/mercurial/hgrc.d
doins "${FILESDIR}/cacerts.rc"
}

src_test() {
pushd tests &>/dev/null || die
rm -rf *svn* # Subversion tests fail with 1.5
rm -f test-archive* # Fails due to verbose tar output changes
rm -f test-convert-baz* # GNU Arch baz
rm -f test-convert-cvs* # CVS
rm -f test-convert-darcs* # Darcs
rm -f test-convert-git* # git
rm -f test-convert-mtn* # monotone
rm -f test-convert-tla* # GNU Arch tla
rm -f test-largefiles* # tends to time out
if [[ ${EUID} -eq 0 ]]; then
einfo "Removing tests which require user privileges to succeed"
rm -f test-convert*
rm -f test-lock-badness*
rm -f test-permissions*
rm -f test-pull-permission*
rm -f test-journal-exists*
rm -f test-repair-strip*
fi

popd &>/dev/null || die
distutils-r1_src_test
}

python_test() {
local TEST_DIR

rm -rf "${TMPDIR}"/test
distutils_install_for_testing
cd tests || die
"${PYTHON}" run-tests.py --verbose \
--tmpdir="${TMPDIR}"/test \
--with-hg="${TEST_DIR}"/scripts/hg \
|| die "Tests fail with ${EPYTHON}"
}

pkg_postinst() {
use emacs && elisp-site-regen

elog "If you want to convert repositories from other tools using convert"
elog "extension please install correct tool:"
elog " dev-vcs/cvs"
elog " dev-vcs/darcs"
elog " dev-vcs/git"
elog " dev-vcs/monotone"
elog " dev-vcs/subversion"
}

pkg_postrm() {
use emacs && elisp-site-regen
}
Loading