Merge remote-tracking branch 'github/pr/795'.
[gentoo.git] / app-eselect / eselect-python / eselect-python-20151117-r3.ebuild
1 # Copyright 1999-2015 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Id$
4
5 EAPI=5
6
7 if [[ ${PV} == "99999999" ]] ; then
8         inherit autotools git-r3
9         EGIT_REPO_URI="git://anongit.gentoo.org/proj/${PN}.git"
10 else
11         SRC_URI="https://dev.gentoo.org/~mgorny/dist/${P}.tar.bz2"
12         KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~ppc-aix ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
13 fi
14
15 DESCRIPTION="Eselect module for management of multiple Python versions"
16 HOMEPAGE="https://www.gentoo.org/proj/en/Python/"
17
18 LICENSE="GPL-2"
19 SLOT="0"
20 IUSE=""
21
22 RDEPEND=">=app-admin/eselect-1.2.3
23         >=dev-lang/python-exec-2.2_pre:2
24         !<dev-lang/python-2.7.10-r4:2.7
25         !<dev-lang/python-3.3.5-r4:3.3
26         !<dev-lang/python-3.4.3-r4:3.4
27         !<dev-lang/python-3.5.0-r3:3.5"
28
29 # Those files are copied from built package
30 QA_PREBUILT="
31         /usr/bin/python
32         /usr/bin/python2
33         /usr/bin/python3"
34
35 src_prepare() {
36         [[ ${PV} == "99999999" ]] && eautoreconf
37 }
38
39 src_install() {
40         keepdir /etc/env.d/python
41         emake DESTDIR="${D}" install || die
42
43         local f
44         for f in python{,2,3}; do
45                 # can't use symlinks here since random stuff
46                 # loves to do readlink on sys.executable...
47                 newbin "${EPREFIX}/usr/lib/python-exec/python-exec2-c" "${f}"
48         done
49         for f in python{,2,3}-config 2to3 idle pydoc pyvenv; do
50                 dosym ../lib/python-exec/python-exec2 /usr/bin/"${f}"
51         done
52 }
53
54 pkg_preinst() {
55         local py
56
57         # Copy python[23] selection from the old format (symlink)
58         for py in 2 3; do
59                 # default to none
60                 declare -g "PREV_PYTHON${py}"=
61
62                 if [[ -L ${EROOT}/usr/bin/python${py} ]]; then
63                         local target=$(readlink "${EROOT}/usr/bin/python${py}")
64
65                         # check if it's actually old eselect symlink
66                         if [[ ${target} == python?.? ]]; then
67                                 declare -g "PREV_PYTHON${py}=${target}"
68                         fi
69                 fi
70         done
71 }
72
73 pkg_postinst() {
74         local py
75
76         if has_version 'dev-lang/python'; then
77                 eselect python update --if-unset
78         fi
79
80         for py in 2 3; do
81                 local pyvar=PREV_PYTHON${py}
82                 if [[ -n ${!pyvar} ]]; then
83                         einfo "Setting Python${py} to ${!pyvar}"
84                         eselect python set "--python${py}" "${!pyvar}"
85                 elif has_version "=dev-lang/python-${py}*"; then
86                         eselect python update "--python${py}" --if-unset
87                 fi
88         done
89 }