public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: app-eselect/eselect-python/
Date: Mon, 11 Jan 2016 16:00:06 +0000 (UTC)	[thread overview]
Message-ID: <1452528003.c9d797292c781e1ef3365f33552579937cd19bf4.mgorny@gentoo> (raw)

commit:     c9d797292c781e1ef3365f33552579937cd19bf4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan  9 22:55:16 2016 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jan 11 16:00:03 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c9d79729

app-eselect/eselect-python: Use C wrapper for python{,2,3}, #568974

Use python-exec2-c to wrap /usr/bin/python{,2,3}, rather than the Python
wrapper. This is both more correct, and fixes Prefix support since
non-Linux systems require programs referenced in shebangs to be real
executables rather than scripts.

 .../eselect-python-20151117-r3.ebuild              | 89 ++++++++++++++++++++++
 1 file changed, 89 insertions(+)

diff --git a/app-eselect/eselect-python/eselect-python-20151117-r3.ebuild b/app-eselect/eselect-python/eselect-python-20151117-r3.ebuild
new file mode 100644
index 0000000..7c478b0
--- /dev/null
+++ b/app-eselect/eselect-python/eselect-python-20151117-r3.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+if [[ ${PV} == "99999999" ]] ; then
+	inherit autotools git-r3
+	EGIT_REPO_URI="git://anongit.gentoo.org/proj/${PN}.git"
+else
+	SRC_URI="https://dev.gentoo.org/~mgorny/dist/${P}.tar.bz2"
+	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"
+fi
+
+DESCRIPTION="Eselect module for management of multiple Python versions"
+HOMEPAGE="https://www.gentoo.org/proj/en/Python/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+RDEPEND=">=app-admin/eselect-1.2.3
+	>=dev-lang/python-exec-2.2_pre:2
+	!<dev-lang/python-2.7.10-r4:2.7
+	!<dev-lang/python-3.3.5-r4:3.3
+	!<dev-lang/python-3.4.3-r4:3.4
+	!<dev-lang/python-3.5.0-r3:3.5"
+
+# Those files are copied from built package
+QA_PREBUILT="
+	/usr/bin/python
+	/usr/bin/python2
+	/usr/bin/python3"
+
+src_prepare() {
+	[[ ${PV} == "99999999" ]] && eautoreconf
+}
+
+src_install() {
+	keepdir /etc/env.d/python
+	emake DESTDIR="${D}" install || die
+
+	local f
+	for f in python{,2,3}; do
+		# can't use symlinks here since random stuff
+		# loves to do readlink on sys.executable...
+		newbin "${EPREFIX}/usr/lib/python-exec/python-exec2-c" "${f}"
+	done
+	for f in python{,2,3}-config 2to3 idle pydoc pyvenv; do
+		dosym ../lib/python-exec/python-exec2 /usr/bin/"${f}"
+	done
+}
+
+pkg_preinst() {
+	local py
+
+	# Copy python[23] selection from the old format (symlink)
+	for py in 2 3; do
+		# default to none
+		declare -g "PREV_PYTHON${py}"=
+
+		if [[ -L ${EROOT}/usr/bin/python${py} ]]; then
+			local target=$(readlink "${EROOT}/usr/bin/python${py}")
+
+			# check if it's actually old eselect symlink
+			if [[ ${target} == python?.? ]]; then
+				declare -g "PREV_PYTHON${py}=${target}"
+			fi
+		fi
+	done
+}
+
+pkg_postinst() {
+	local py
+
+	if has_version 'dev-lang/python'; then
+		eselect python update --if-unset
+	fi
+
+	for py in 2 3; do
+		local pyvar=PREV_PYTHON${py}
+		if [[ -n ${!pyvar} ]]; then
+			einfo "Setting Python${py} to ${!pyvar}"
+			eselect python set "--python${py}" "${!pyvar}"
+		elif has_version "=dev-lang/python-${py}*"; then
+			eselect python update "--python${py}" --if-unset
+		fi
+	done
+}


             reply	other threads:[~2016-01-11 16:00 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-11 16:00 Michał Górny [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-10-01  1:02 [gentoo-commits] repo/gentoo:master commit in: app-eselect/eselect-python/ Sam James
2022-05-02 19:43 Michał Górny
2021-01-06 13:12 Fabian Groffen
2020-12-27 13:49 Fabian Groffen
2020-09-18 10:07 Agostino Sarubbo
2020-09-18  7:23 Michał Górny
2020-07-19 20:23 Patrick McLean
2020-07-19 20:23 Patrick McLean
2020-03-07 15:45 Michał Górny
2020-03-07 15:11 Michał Górny
2020-02-24 11:31 Agostino Sarubbo
2020-02-20 18:47 Sergei Trofimovich
2020-02-17 12:17 Agostino Sarubbo
2020-02-17 12:13 Agostino Sarubbo
2020-02-17 12:09 Agostino Sarubbo
2020-02-17 11:53 Agostino Sarubbo
2020-02-17 11:47 Agostino Sarubbo
2020-02-17 11:45 Agostino Sarubbo
2020-02-16 21:14 Thomas Deutschmann
2019-05-04 10:35 Andreas K. Hüttel
2019-04-17 12:27 Michał Górny
2018-09-13 21:22 Patrice Clement
2018-04-16 19:15 Mikle Kolyada
2017-12-04 17:47 Michał Górny
2017-12-04 17:47 Michał Górny
2017-02-17  6:01 Markus Meier
2017-01-29 14:49 Fabian Groffen
2017-01-26 17:08 Jeroen Roovers
2017-01-23 18:27 Tobias Klausmann
2017-01-22 14:26 Manuel Rüger
2017-01-17 20:38 Mike Frysinger
2017-01-11  3:03 Aaron Bauman
2016-11-24 16:35 Mike Gilbert
2016-10-02  9:01 Jeroen Roovers
2016-08-03 15:49 Mike Gilbert
2016-06-10 13:53 Agostino Sarubbo
2016-05-26 12:50 Tobias Klausmann
2016-05-24 20:06 Markus Meier
2016-02-28 17:46 Michał Górny
2016-02-28 17:14 Michał Górny
2016-02-25 20:29 Michał Górny
2016-02-25 20:29 Michał Górny
2016-02-23 22:20 Michał Górny
2016-02-07 18:51 Michał Górny
2016-02-06  9:58 Michał Górny
2016-02-06  9:58 Michał Górny
2016-02-06  9:58 Michał Górny
2015-12-18 22:01 Michał Górny
2015-11-25 12:37 Michał Górny
2015-11-17 22:44 Michał Górny
2015-11-17 20:39 Michał Górny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1452528003.c9d797292c781e1ef3365f33552579937cd19bf4.mgorny@gentoo \
    --to=mgorny@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox