Skip to content
Open
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,3 +1,4 @@
DIST mercurial-6.9.1.tar.gz 8664016 BLAKE2B 674b66c05558d9a542f36e02cf20891e43d8017274317218c1fcd4bbdf737c48be580601daeff54488673b36e02cfe5c7edf443860fe2446139d1b989a9f7f5b SHA512 8e04d84b17145de2659c0a1114dba1dfc291ce3742b7057db1004b63caf7922f5bac865908cbd0065b05722707705e1181963651a9a02f1ee80bb70bee408bad
DIST mercurial-6.9.2.tar.gz 8665847 BLAKE2B 799ae18605930debbaff82e704e39ab050e0255281e5a50da82d41cb7794fda901b023cd0807b60cd00fe3941ed0d1bed617505a9fea866427eb0935bba5d9c6 SHA512 00b4c824141c1c834dc6647b36a5f78fd9ac385d36807586448575688d540dbed857d489a80702739af8cd161d565d543b43fa41955e8df68ed562229abc86d2
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
}