blob: 1bb9ce7382feef90752abc9be7b8f3b747fb624a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-vcs/mercurial/mercurial-2.4.1-r2.ebuild,v 1.4 2013/01/02 08:32:19 djc Exp $
EAPI=3
PYTHON_DEPEND="2"
PYTHON_USE_WITH="threads"
SUPPORT_PYTHON_ABIS="1"
RESTRICT_PYTHON_ABIS="3.* *-jython 2.7-pypy-*"
inherit bash-completion-r1 elisp-common eutils distutils
DESCRIPTION="Scalable distributed SCM"
HOMEPAGE="http://mercurial.selenic.com/"
SRC_URI="http://mercurial.selenic.com/release/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="bugzilla emacs gpg test tk zsh-completion"
RDEPEND="bugzilla? ( dev-python/mysql-python )
gpg? ( app-crypt/gnupg )
tk? ( dev-lang/tk )
zsh-completion? ( app-shells/zsh )
app-misc/ca-certificates"
DEPEND="emacs? ( virtual/emacs )
test? ( app-arch/unzip
dev-python/pygments )"
PYTHON_CFLAGS=(
"2.* + -fno-strict-aliasing"
"* - -ftracer -ftree-vectorize"
)
PYTHON_MODNAME="${PN} hgext"
SITEFILE="70${PN}-gentoo.el"
src_prepare() {
distutils_src_prepare
# fix up logic that won't work in Gentoo Prefix (also won't outside in
# certain cases), bug #362891
sed -i -e 's:xcodebuild:nocodebuild:' setup.py || die
}
src_compile() {
distutils_src_compile
if use emacs; then
cd "${S}"/contrib || die
elisp-compile mercurial.el || die "elisp-compile failed!"
fi
rm -rf contrib/{win32,macosx} || die
}
src_install() {
distutils_src_install
python_convert_shebangs 2 contrib/hg-ssh
newbashcomp contrib/bash_completion ${PN} || die
if use zsh-completion ; then
insinto /usr/share/zsh/site-functions
newins contrib/zsh_completion _hg || die
fi
rm -f doc/*.?.txt || die
dodoc CONTRIBUTORS PKG-INFO README doc/*.txt || die
cp hgweb*.cgi "${ED}"/usr/share/doc/${PF}/ || die
dobin hgeditor || die
dobin contrib/hgk || die
dobin contrib/hg-ssh || die
rm -f contrib/hgk contrib/hg-ssh || die
rm -f contrib/bash_completion || die
cp -r contrib "${ED}"/usr/share/doc/${PF}/ || die
doman doc/*.? || die
cat > "${T}/80mercurial" <<-EOF
HG="${EPREFIX}/usr/bin/hg"
EOF
doenvd "${T}/80mercurial" || die
if use emacs; then
elisp-install ${PN} contrib/mercurial.el* || die "elisp-install failed!"
elisp-site-file-install "${FILESDIR}"/${SITEFILE}
fi
insinto /etc/mercurial/hgrc.d
doins "${FILESDIR}/cacerts.rc"
}
src_test() {
cd "${S}/tests/" || die
rm -rf *svn* || die # Subversion tests fail with 1.5
rm -f test-archive* || die # Fails due to verbose tar output changes
rm -f test-convert-baz* || die # GNU Arch baz
rm -f test-convert-cvs* || die # CVS
rm -f test-convert-darcs* || die # Darcs
rm -f test-convert-git* || die # git
rm -f test-convert-mtn* || die # monotone
rm -f test-convert-tla* || die # GNU Arch tla
rm -f test-doctest* || die # doctest always fails with python 2.5.x
rm -f test-largefiles* || die # tends to time out
if [[ ${EUID} -eq 0 ]]; then
einfo "Removing tests which require user privileges to succeed"
rm -f test-command-template* || die # Test is broken when run as root
rm -f test-convert* || die # Test is broken when run as root
rm -f test-lock-badness* || die # Test is broken when run as root
rm -f test-permissions* || die # Test is broken when run as root
rm -f test-pull-permission* || die # Test is broken when run as root
rm -f test-clone-failure* || die
rm -f test-journal-exists* || die
rm -f test-repair-strip* || die
fi
testing() {
local testdir="${T}/tests-${PYTHON_ABI}"
rm -rf "${testdir}" || die
"$(PYTHON)" run-tests.py --tmpdir="${testdir}"
}
python_execute_function testing
}
pkg_postinst() {
distutils_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() {
distutils_pkg_postrm
use emacs && elisp-site-regen
}
|