blob: e928c9de2faf1df5cb54e4b32e501502984d6cd8 (
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
|
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-vcs/bzr/bzr-2.2.2-r1.ebuild,v 1.9 2011/08/19 19:17:32 hwoarang Exp $
EAPI="3"
PYTHON_DEPEND="2"
SUPPORT_PYTHON_ABIS="1"
RESTRICT_PYTHON_ABIS="3.*"
inherit bash-completion distutils elisp-common eutils versionator
MY_P=${PN}-${PV}
SERIES=$(get_version_component_range 1-2)
DESCRIPTION="Bazaar is a next generation distributed version control system."
HOMEPAGE="http://bazaar-vcs.org/"
#SRC_URI="http://bazaar-vcs.org/releases/src/${MY_P}.tar.gz"
SRC_URI="http://launchpad.net/bzr/${SERIES}/${PV}/+download/${MY_P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha amd64 arm hppa ia64 ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris"
IUSE="curl doc emacs +sftp test"
# Disable until https://bugs.launchpad.net/bzr/+bug/392127 is released.
# It can be found in Bazaar 2.3
RESTRICT="test"
RDEPEND="|| ( dev-lang/python:2.7[xml] dev-lang/python:2.6[xml] dev-lang/python:2.5[xml] dev-python/celementtree )
curl? ( dev-python/pycurl )
sftp? ( dev-python/paramiko )"
DEPEND="emacs? ( virtual/emacs )
test? (
${RDEPEND}
dev-python/medusa
dev-python/subunit
dev-python/testtools
)"
S="${WORKDIR}/${MY_P}"
PYTHON_CFLAGS=("2.* + -fno-strict-aliasing")
DOCS="doc/*.txt"
PYTHON_MODNAME="bzrlib"
SITEFILE="71bzr-gentoo.el"
src_prepare() {
distutils_src_prepare
# Fix for changed behaviour of Python 2.7, integrated into Bazaar
# 2.3, might be a regression in Python, see
# https://bugs.launchpad.net/bzr/+bug/612096
# http://psf.upfronthosting.co.za/roundup/tracker/issue8194
epatch "${FILESDIR}"/${PN}-2.2.2-python-2.7.patch
# Don't regenerate .c files from .pyx when pyrex is found.
epatch "${FILESDIR}/${PN}-2.2.0-no-pyrex-citon.patch"
# Don't run lock permission tests when running as root
# Has to be backported, tests are restricted anyway
# epatch "${FILESDIR}/${PN}-0.90-tests-fix_root.patch"
# Fix permission errors when run under directories with setgid set.
epatch "${FILESDIR}/${PN}-0.90-tests-sgid.patch"
}
src_compile() {
distutils_src_compile
if use emacs; then
elisp-compile contrib/emacs/bzr-mode.el || die
fi
}
src_test() {
# Some tests expect the usual pyc compiling behaviour.
python_enable_pyc
# Define tests which are known to fail below.
local skip_tests="("
# https://bugs.launchpad.net/bzr/+bug/456471
skip_tests+="bzrlib.tests.blackbox.test_version.*|"
# https://bugs.launchpad.net/bzr/+bug/392127
skip_tests+="test_http.*"
skip_tests+=")"
if [[ -n ${skip_tests} ]]; then
einfo "Skipping tests known to fail: ${skip_tests}"
fi
testing() {
LC_ALL="C" "$(PYTHON)" bzr --no-plugins selftest ${skip_tests:+-x} ${skip_tests}
}
python_execute_function testing
# Just to make sure we don't hit any errors on later stages.
python_disable_pyc
}
src_install() {
distutils_src_install --install-data "${EPREFIX}/usr/share"
if use doc; then
docinto developers
dodoc doc/developers/* || die
for doc in mini-tutorial tutorials user-{guide,reference}; do
docinto $doc
dodoc doc/en/$doc/* || die
done
fi
if use emacs; then
elisp-install ${PN} contrib/emacs/*.el* || die
elisp-site-file-install "${FILESDIR}/${SITEFILE}" || die
# don't add automatically to the load-path, so the sitefile
# can do a conditional loading
touch "${ED}${SITELISP}/${PN}/.nosearch"
fi
dobashcompletion contrib/bash/bzr
}
pkg_postinst() {
distutils_pkg_postinst
bash-completion_pkg_postinst
if use emacs; then
elisp-site-regen
elog "If you are using a GNU Emacs version greater than 22.1, bzr support"
elog "is already included. This ebuild does not automatically activate bzr support"
elog "in versions below, but prepares it in a way you can load it from your ~/.emacs"
elog "file by adding"
elog " (load \"bzr-mode\")"
fi
}
pkg_postrm() {
distutils_pkg_postrm
use emacs && elisp-site-regen
}
|