* [gentoo-python] [PATCHes] boost migration to python-r1
@ 2012-12-14 22:08 Michał Górny
2012-12-14 22:08 ` [gentoo-python] [PATCH 1/3] Let boost figure out the Python includedir itself Michał Górny
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Michał Górny @ 2012-12-14 22:08 UTC (permalink / raw
To: gentoo-python; +Cc: python, cpp
[Note: sending this mail to the ml to have it archived,
actual maintainers are CC-ed.]
I'd like to announce that I've prepared a batch of three patches which
clean up the boost ebuild a bit and then migrate it to python-r1.
A quick summary follows:
(1) removes unnecessary setting of Python includedir and libdir
in jam config. The bootstrap script does not write them there,
and without them bjam finds Python libs and headers just fine.
(2) just replaces three calls to $(python_get_sitedir) with a single
one, storing the result in a variable.
(3) does the actual migration. It's mostly replacing variables
and functions with python-r1 counterparts, and moving the module
optimization to build process. It's not much of a difference actually.
Shortly saying, the ebuild is a compatible replacement, with all
niceness of python-r1 installed (as in implementations being selectable
via PYTHON_TARGETS).
Any comments? Tiziano, would you mind if I committed this?
--
Best regards,
Michał Górny
^ permalink raw reply [flat|nested] 10+ messages in thread
* [gentoo-python] [PATCH 1/3] Let boost figure out the Python includedir itself.
2012-12-14 22:08 [gentoo-python] [PATCHes] boost migration to python-r1 Michał Górny
@ 2012-12-14 22:08 ` Michał Górny
2012-12-15 11:34 ` [gentoo-python] " Tiziano Müller
2012-12-14 22:08 ` [gentoo-python] [PATCH 2/3] Commonize out $(python_get_sitedir)/boost into a variable Michał Górny
2012-12-14 22:08 ` [gentoo-python] [PATCH 3/3] Convert to python-r1 Michał Górny
2 siblings, 1 reply; 10+ messages in thread
From: Michał Górny @ 2012-12-14 22:08 UTC (permalink / raw
To: gentoo-python; +Cc: python, cpp, Michał Górny
The bootstrap script uses the sole version as well, and boost finds
the includes and libraries just fine.
---
gx86/dev-libs/boost/boost-1.52.0-r5.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild b/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
index 8659246..4f20fdf 100644
--- a/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
+++ b/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
@@ -50,7 +50,7 @@ create_user-config.jam() {
fi
if use python; then
- python_configuration="using python : $(python_get_version) : /usr : $(python_get_includedir) : /usr/$(get_libdir) ;"
+ python_configuration="using python : $(python_get_version) ;"
fi
cat > user-config.jam << __EOF__
--
1.8.0.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-python] [PATCH 2/3] Commonize out $(python_get_sitedir)/boost into a variable.
2012-12-14 22:08 [gentoo-python] [PATCHes] boost migration to python-r1 Michał Górny
2012-12-14 22:08 ` [gentoo-python] [PATCH 1/3] Let boost figure out the Python includedir itself Michał Górny
@ 2012-12-14 22:08 ` Michał Górny
2012-12-15 11:35 ` [gentoo-python] " Tiziano Müller
2012-12-14 22:08 ` [gentoo-python] [PATCH 3/3] Convert to python-r1 Michał Górny
2 siblings, 1 reply; 10+ messages in thread
From: Michał Górny @ 2012-12-14 22:08 UTC (permalink / raw
To: gentoo-python; +Cc: python, cpp, Michał Górny
---
gx86/dev-libs/boost/boost-1.52.0-r5.ebuild | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild b/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
index 4f20fdf..87c7561 100644
--- a/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
+++ b/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
@@ -205,9 +205,10 @@ src_install () {
# Move mpi.so Python module to Python site-packages directory.
# https://svn.boost.org/trac/boost/ticket/2838
if use mpi; then
- dodir $(python_get_sitedir)/boost
- mv "${D}usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost" || die
- cat << EOF > "${D}$(python_get_sitedir)/boost/__init__.py" || die
+ local moddir=$(python_get_sitedir)/boost
+ dodir "${moddir}"
+ mv "${D}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
+ cat << EOF > "${D}${moddir}/__init__.py" || die
import sys
if sys.platform.startswith('linux'):
import DLFCN
--
1.8.0.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-python] [PATCH 3/3] Convert to python-r1.
2012-12-14 22:08 [gentoo-python] [PATCHes] boost migration to python-r1 Michał Górny
2012-12-14 22:08 ` [gentoo-python] [PATCH 1/3] Let boost figure out the Python includedir itself Michał Górny
2012-12-14 22:08 ` [gentoo-python] [PATCH 2/3] Commonize out $(python_get_sitedir)/boost into a variable Michał Górny
@ 2012-12-14 22:08 ` Michał Górny
2012-12-15 11:42 ` [gentoo-python] " Tiziano Müller
2 siblings, 1 reply; 10+ messages in thread
From: Michał Górny @ 2012-12-14 22:08 UTC (permalink / raw
To: gentoo-python; +Cc: python, cpp, Michał Górny
---
gx86/dev-libs/boost/boost-1.52.0-r5.ebuild | 47 ++++++++++--------------------
1 file changed, 15 insertions(+), 32 deletions(-)
diff --git a/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild b/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
index 87c7561..10bd293 100644
--- a/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
+++ b/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
@@ -3,11 +3,9 @@
# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.52.0-r4.ebuild,v 1.1 2012/11/22 03:37:58 flameeyes Exp $
EAPI="5"
-PYTHON_DEPEND="python? *"
-SUPPORT_PYTHON_ABIS="1"
-RESTRICT_PYTHON_ABIS="*-jython *-pypy-*"
+PYTHON_COMPAT=( python{2_5,2_6,2_7,3_1,3_2,3_3} )
-inherit flag-o-matic multilib multiprocessing python toolchain-funcs versionator
+inherit flag-o-matic multilib multiprocessing python-r1 toolchain-funcs versionator
MY_P=${PN}_$(replace_all_version_separators _)
@@ -24,6 +22,7 @@ IUSE="debug doc icu +nls mpi python static-libs +threads tools"
RDEPEND="icu? ( >=dev-libs/icu-3.6:= )
!icu? ( virtual/libiconv )
mpi? ( || ( sys-cluster/openmpi[cxx] sys-cluster/mpich2[cxx,threads] ) )
+ python? ( ${PYTHON_DEPS} )
sys-libs/zlib
!app-admin/eselect-boost"
DEPEND="${RDEPEND}
@@ -50,7 +49,7 @@ create_user-config.jam() {
fi
if use python; then
- python_configuration="using python : $(python_get_version) ;"
+ python_configuration="using python : ${EPYTHON#python} ;"
fi
cat > user-config.jam << __EOF__
@@ -60,12 +59,6 @@ ${python_configuration}
__EOF__
}
-pkg_setup() {
- if use python; then
- python_pkg_setup
- fi
-}
-
src_prepare() {
epatch \
"${FILESDIR}/${PN}-1.48.0-mpi_python3.patch" \
@@ -129,7 +122,7 @@ src_compile() {
create_user-config.jam
ejam ${OPTIONS} \
- $(use python && echo --python-buildid=${PYTHON_ABI}) \
+ $(use python && echo --python-buildid=${EPYTHON#python}) \
|| die "Building of Boost libraries failed"
if use python; then
@@ -143,7 +136,7 @@ src_compile() {
local dir
for dir in ${PYTHON_DIRS}; do
- mv ${dir} ${dir}-${PYTHON_ABI} || die "Renaming of '${dir}' to '${dir}-${PYTHON_ABI}' failed"
+ mv ${dir} ${dir}-${EPYTHON} || die
done
if use mpi; then
@@ -158,12 +151,12 @@ src_compile() {
fi
fi
- mv stage/lib/mpi.so stage/lib/mpi.so-${PYTHON_ABI} || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${PYTHON_ABI}' failed"
+ mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} || die
fi
fi
}
if use python; then
- python_execute_function building
+ python_foreach_impl building
else
building
fi
@@ -184,19 +177,19 @@ src_install () {
if use python; then
local dir
for dir in ${PYTHON_DIRS}; do
- cp -pr ${dir}-${PYTHON_ABI} ${dir} || die "Copying of '${dir}-${PYTHON_ABI}' to '${dir}' failed"
+ cp -pr ${dir}-${EPYTHON} ${dir} || die
done
if use mpi; then
- cp -p stage/lib/mpi.so-${PYTHON_ABI} "${MPI_PYTHON_MODULE}" || die "Copying of 'stage/lib/mpi.so-${PYTHON_ABI}' to '${MPI_PYTHON_MODULE}' failed"
- cp -p stage/lib/mpi.so-${PYTHON_ABI} stage/lib/mpi.so || die "Copying of 'stage/lib/mpi.so-${PYTHON_ABI}' to 'stage/lib/mpi.so' failed"
+ cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" || die
+ cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so || die
fi
fi
ejam ${OPTIONS} \
--includedir="${D}usr/include" \
--libdir="${D}usr/$(get_libdir)" \
- $(use python && echo --python-buildid=${PYTHON_ABI}) \
+ $(use python && echo --python-buildid=${EPYTHON#python}) \
install || die "Installation of Boost libraries failed"
if use python; then
@@ -222,10 +215,12 @@ else:
del sys
EOF
fi
+
+ python_optimize
fi
}
if use python; then
- python_execute_function installation
+ python_foreach_impl installation
else
installation
fi
@@ -320,18 +315,6 @@ pkg_preinst() {
done
}
-pkg_postinst() {
- if use mpi && use python; then
- python_mod_optimize boost
- fi
-}
-
-pkg_postrm() {
- if use mpi && use python; then
- python_mod_cleanup boost
- fi
-}
-
# the tests will never fail because these are not intended as sanity
# tests at all. They are more a way for upstream to check their own code
# on new compilers. Since they would either be completely unreliable
--
1.8.0.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-python] Re: [PATCH 1/3] Let boost figure out the Python includedir itself.
2012-12-14 22:08 ` [gentoo-python] [PATCH 1/3] Let boost figure out the Python includedir itself Michał Górny
@ 2012-12-15 11:34 ` Tiziano Müller
2012-12-15 14:27 ` [gentoo-python] [PATCH] Pass absolute Python interpreter path to boost Michał Górny
0 siblings, 1 reply; 10+ messages in thread
From: Tiziano Müller @ 2012-12-15 11:34 UTC (permalink / raw
To: Michał Górny; +Cc: gentoo-python, python, cpp
If you checked that boost-build will ever only use what is currently
explicitely specified: fine for me.
What I don't want is:
* boost using something in /usr/local
* boost using something in some other location should it somehow fail to
find our python (yes: I want to it to bail out)
Am Freitag, den 14.12.2012, 23:08 +0100 schrieb Michał Górny:
> The bootstrap script uses the sole version as well, and boost finds
> the includes and libraries just fine.
> ---
> gx86/dev-libs/boost/boost-1.52.0-r5.ebuild | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild b/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
> index 8659246..4f20fdf 100644
> --- a/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
> +++ b/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
> @@ -50,7 +50,7 @@ create_user-config.jam() {
> fi
>
> if use python; then
> - python_configuration="using python : $(python_get_version) : /usr : $(python_get_includedir) : /usr/$(get_libdir) ;"
> + python_configuration="using python : $(python_get_version) ;"
> fi
>
> cat > user-config.jam << __EOF__
^ permalink raw reply [flat|nested] 10+ messages in thread
* [gentoo-python] Re: [PATCH 2/3] Commonize out $(python_get_sitedir)/boost into a variable.
2012-12-14 22:08 ` [gentoo-python] [PATCH 2/3] Commonize out $(python_get_sitedir)/boost into a variable Michał Górny
@ 2012-12-15 11:35 ` Tiziano Müller
2012-12-15 12:02 ` Michał Górny
0 siblings, 1 reply; 10+ messages in thread
From: Tiziano Müller @ 2012-12-15 11:35 UTC (permalink / raw
To: Michał Górny; +Cc: gentoo-python, python, cpp
mostly bikeshedding and I am not sure whether I should support your
crusade against subshells: but ok
Am Freitag, den 14.12.2012, 23:08 +0100 schrieb Michał Górny:
> ---
> gx86/dev-libs/boost/boost-1.52.0-r5.ebuild | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild b/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
> index 4f20fdf..87c7561 100644
> --- a/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
> +++ b/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
> @@ -205,9 +205,10 @@ src_install () {
> # Move mpi.so Python module to Python site-packages directory.
> # https://svn.boost.org/trac/boost/ticket/2838
> if use mpi; then
> - dodir $(python_get_sitedir)/boost
> - mv "${D}usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost" || die
> - cat << EOF > "${D}$(python_get_sitedir)/boost/__init__.py" || die
> + local moddir=$(python_get_sitedir)/boost
> + dodir "${moddir}"
> + mv "${D}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
> + cat << EOF > "${D}${moddir}/__init__.py" || die
> import sys
> if sys.platform.startswith('linux'):
> import DLFCN
^ permalink raw reply [flat|nested] 10+ messages in thread
* [gentoo-python] Re: [PATCH 3/3] Convert to python-r1.
2012-12-14 22:08 ` [gentoo-python] [PATCH 3/3] Convert to python-r1 Michał Górny
@ 2012-12-15 11:42 ` Tiziano Müller
2012-12-15 12:17 ` Michał Górny
0 siblings, 1 reply; 10+ messages in thread
From: Tiziano Müller @ 2012-12-15 11:42 UTC (permalink / raw
To: Michał Górny; +Cc: gentoo-python, python, cpp
Am Freitag, den 14.12.2012, 23:08 +0100 schrieb Michał Górny:
> ---
> gx86/dev-libs/boost/boost-1.52.0-r5.ebuild | 47 ++++++++++--------------------
> 1 file changed, 15 insertions(+), 32 deletions(-)
>
> diff --git a/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild b/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
> index 87c7561..10bd293 100644
> --- a/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
> +++ b/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
> @@ -3,11 +3,9 @@
> # $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.52.0-r4.ebuild,v 1.1 2012/11/22 03:37:58 flameeyes Exp $
>
> EAPI="5"
> -PYTHON_DEPEND="python? *"
> -SUPPORT_PYTHON_ABIS="1"
> -RESTRICT_PYTHON_ABIS="*-jython *-pypy-*"
> +PYTHON_COMPAT=( python{2_5,2_6,2_7,3_1,3_2,3_3} )
>
> -inherit flag-o-matic multilib multiprocessing python toolchain-funcs versionator
> +inherit flag-o-matic multilib multiprocessing python-r1 toolchain-funcs versionator
>
> MY_P=${PN}_$(replace_all_version_separators _)
>
> @@ -24,6 +22,7 @@ IUSE="debug doc icu +nls mpi python static-libs +threads tools"
> RDEPEND="icu? ( >=dev-libs/icu-3.6:= )
> !icu? ( virtual/libiconv )
> mpi? ( || ( sys-cluster/openmpi[cxx] sys-cluster/mpich2[cxx,threads] ) )
> + python? ( ${PYTHON_DEPS} )
> sys-libs/zlib
> !app-admin/eselect-boost"
> DEPEND="${RDEPEND}
> @@ -50,7 +49,7 @@ create_user-config.jam() {
> fi
>
> if use python; then
> - python_configuration="using python : $(python_get_version) ;"
> + python_configuration="using python : ${EPYTHON#python} ;"
can you please repeat why there is no EPYTHONV variable?
> fi
>
> cat > user-config.jam << __EOF__
> @@ -60,12 +59,6 @@ ${python_configuration}
> __EOF__
> }
>
> -pkg_setup() {
> - if use python; then
> - python_pkg_setup
> - fi
> -}
> -
> src_prepare() {
> epatch \
> "${FILESDIR}/${PN}-1.48.0-mpi_python3.patch" \
> @@ -129,7 +122,7 @@ src_compile() {
> create_user-config.jam
>
> ejam ${OPTIONS} \
> - $(use python && echo --python-buildid=${PYTHON_ABI}) \
> + $(use python && echo --python-buildid=${EPYTHON#python}) \
> || die "Building of Boost libraries failed"
>
> if use python; then
> @@ -143,7 +136,7 @@ src_compile() {
>
> local dir
> for dir in ${PYTHON_DIRS}; do
> - mv ${dir} ${dir}-${PYTHON_ABI} || die "Renaming of '${dir}' to '${dir}-${PYTHON_ABI}' failed"
> + mv ${dir} ${dir}-${EPYTHON} || die
Do we loose something by having an explicit error message?
Please leave it there (dito for all the other cases)
> done
>
> if use mpi; then
> @@ -158,12 +151,12 @@ src_compile() {
> fi
> fi
>
> - mv stage/lib/mpi.so stage/lib/mpi.so-${PYTHON_ABI} || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${PYTHON_ABI}' failed"
> + mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} || die
> fi
> fi
> }
> if use python; then
> - python_execute_function building
> + python_foreach_impl building
> else
> building
> fi
> @@ -184,19 +177,19 @@ src_install () {
> if use python; then
> local dir
> for dir in ${PYTHON_DIRS}; do
> - cp -pr ${dir}-${PYTHON_ABI} ${dir} || die "Copying of '${dir}-${PYTHON_ABI}' to '${dir}' failed"
> + cp -pr ${dir}-${EPYTHON} ${dir} || die
> done
>
> if use mpi; then
> - cp -p stage/lib/mpi.so-${PYTHON_ABI} "${MPI_PYTHON_MODULE}" || die "Copying of 'stage/lib/mpi.so-${PYTHON_ABI}' to '${MPI_PYTHON_MODULE}' failed"
> - cp -p stage/lib/mpi.so-${PYTHON_ABI} stage/lib/mpi.so || die "Copying of 'stage/lib/mpi.so-${PYTHON_ABI}' to 'stage/lib/mpi.so' failed"
> + cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" || die
> + cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so || die
> fi
> fi
>
> ejam ${OPTIONS} \
> --includedir="${D}usr/include" \
> --libdir="${D}usr/$(get_libdir)" \
> - $(use python && echo --python-buildid=${PYTHON_ABI}) \
> + $(use python && echo --python-buildid=${EPYTHON#python}) \
> install || die "Installation of Boost libraries failed"
>
> if use python; then
> @@ -222,10 +215,12 @@ else:
> del sys
> EOF
> fi
> +
> + python_optimize
> fi
> }
> if use python; then
> - python_execute_function installation
> + python_foreach_impl installation
> else
> installation
> fi
> @@ -320,18 +315,6 @@ pkg_preinst() {
> done
> }
>
> -pkg_postinst() {
> - if use mpi && use python; then
> - python_mod_optimize boost
> - fi
> -}
> -
> -pkg_postrm() {
> - if use mpi && use python; then
> - python_mod_cleanup boost
> - fi
> -}
> -
> # the tests will never fail because these are not intended as sanity
> # tests at all. They are more a way for upstream to check their own code
> # on new compilers. Since they would either be completely unreliable
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [gentoo-python] Re: [PATCH 2/3] Commonize out $(python_get_sitedir)/boost into a variable.
2012-12-15 11:35 ` [gentoo-python] " Tiziano Müller
@ 2012-12-15 12:02 ` Michał Górny
0 siblings, 0 replies; 10+ messages in thread
From: Michał Górny @ 2012-12-15 12:02 UTC (permalink / raw
To: Tiziano Müller; +Cc: gentoo-python, python, cpp
[-- Attachment #1: Type: text/plain, Size: 340 bytes --]
On Sat, 15 Dec 2012 12:35:52 +0100
Tiziano Müller <dev-zero@gentoo.org> wrote:
> mostly bikeshedding and I am not sure whether I should support your
> crusade against subshells: but ok
Err, it's mostly replacing three repetitive uses
of $(python_get_sitedir)/boost with one pre-defined var.
--
Best regards,
Michał Górny
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 316 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [gentoo-python] Re: [PATCH 3/3] Convert to python-r1.
2012-12-15 11:42 ` [gentoo-python] " Tiziano Müller
@ 2012-12-15 12:17 ` Michał Górny
0 siblings, 0 replies; 10+ messages in thread
From: Michał Górny @ 2012-12-15 12:17 UTC (permalink / raw
To: Tiziano Müller; +Cc: gentoo-python, python, cpp
[-- Attachment #1: Type: text/plain, Size: 5870 bytes --]
On Sat, 15 Dec 2012 12:42:02 +0100
Tiziano Müller <dev-zero@gentoo.org> wrote:
> Am Freitag, den 14.12.2012, 23:08 +0100 schrieb Michał Górny:
> > ---
> > gx86/dev-libs/boost/boost-1.52.0-r5.ebuild | 47 ++++++++++--------------------
> > 1 file changed, 15 insertions(+), 32 deletions(-)
> >
> > diff --git a/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild b/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
> > index 87c7561..10bd293 100644
> > --- a/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
> > +++ b/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
> > @@ -3,11 +3,9 @@
> > # $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.52.0-r4.ebuild,v 1.1 2012/11/22 03:37:58 flameeyes Exp $
> >
> > EAPI="5"
> > -PYTHON_DEPEND="python? *"
> > -SUPPORT_PYTHON_ABIS="1"
> > -RESTRICT_PYTHON_ABIS="*-jython *-pypy-*"
> > +PYTHON_COMPAT=( python{2_5,2_6,2_7,3_1,3_2,3_3} )
> >
> > -inherit flag-o-matic multilib multiprocessing python toolchain-funcs versionator
> > +inherit flag-o-matic multilib multiprocessing python-r1 toolchain-funcs versionator
> >
> > MY_P=${PN}_$(replace_all_version_separators _)
> >
> > @@ -24,6 +22,7 @@ IUSE="debug doc icu +nls mpi python static-libs +threads tools"
> > RDEPEND="icu? ( >=dev-libs/icu-3.6:= )
> > !icu? ( virtual/libiconv )
> > mpi? ( || ( sys-cluster/openmpi[cxx] sys-cluster/mpich2[cxx,threads] ) )
> > + python? ( ${PYTHON_DEPS} )
> > sys-libs/zlib
> > !app-admin/eselect-boost"
> > DEPEND="${RDEPEND}
> > @@ -50,7 +49,7 @@ create_user-config.jam() {
> > fi
> >
> > if use python; then
> > - python_configuration="using python : $(python_get_version) ;"
> > + python_configuration="using python : ${EPYTHON#python} ;"
>
> can you please repeat why there is no EPYTHONV variable?
There wasn't one, I didn't want to introduce it myself.
The root of the problem is that there are multiple kinds of 'Python
version' and people usually have no idea which one they want. In this
particular case, boost wants the suffix of python libraries which is
specific to CPython. Scrambling it from EPYTHON is the simplest thing
to do here.
But I'll take a second look at python_configuration because of your
earlier comments.
>
> > fi
> >
> > cat > user-config.jam << __EOF__
> > @@ -60,12 +59,6 @@ ${python_configuration}
> > __EOF__
> > }
> >
> > -pkg_setup() {
> > - if use python; then
> > - python_pkg_setup
> > - fi
> > -}
> > -
> > src_prepare() {
> > epatch \
> > "${FILESDIR}/${PN}-1.48.0-mpi_python3.patch" \
> > @@ -129,7 +122,7 @@ src_compile() {
> > create_user-config.jam
> >
> > ejam ${OPTIONS} \
> > - $(use python && echo --python-buildid=${PYTHON_ABI}) \
> > + $(use python && echo --python-buildid=${EPYTHON#python}) \
> > || die "Building of Boost libraries failed"
> >
> > if use python; then
> > @@ -143,7 +136,7 @@ src_compile() {
> >
> > local dir
> > for dir in ${PYTHON_DIRS}; do
> > - mv ${dir} ${dir}-${PYTHON_ABI} || die "Renaming of '${dir}' to '${dir}-${PYTHON_ABI}' failed"
> > + mv ${dir} ${dir}-${EPYTHON} || die
>
> Do we loose something by having an explicit error message?
> Please leave it there (dito for all the other cases)
Well, we lose readability when ebuild has 120-character long lines.
>
> > done
> >
> > if use mpi; then
> > @@ -158,12 +151,12 @@ src_compile() {
> > fi
> > fi
> >
> > - mv stage/lib/mpi.so stage/lib/mpi.so-${PYTHON_ABI} || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${PYTHON_ABI}' failed"
> > + mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} || die
> > fi
> > fi
> > }
> > if use python; then
> > - python_execute_function building
> > + python_foreach_impl building
> > else
> > building
> > fi
> > @@ -184,19 +177,19 @@ src_install () {
> > if use python; then
> > local dir
> > for dir in ${PYTHON_DIRS}; do
> > - cp -pr ${dir}-${PYTHON_ABI} ${dir} || die "Copying of '${dir}-${PYTHON_ABI}' to '${dir}' failed"
> > + cp -pr ${dir}-${EPYTHON} ${dir} || die
> > done
> >
> > if use mpi; then
> > - cp -p stage/lib/mpi.so-${PYTHON_ABI} "${MPI_PYTHON_MODULE}" || die "Copying of 'stage/lib/mpi.so-${PYTHON_ABI}' to '${MPI_PYTHON_MODULE}' failed"
> > - cp -p stage/lib/mpi.so-${PYTHON_ABI} stage/lib/mpi.so || die "Copying of 'stage/lib/mpi.so-${PYTHON_ABI}' to 'stage/lib/mpi.so' failed"
> > + cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" || die
> > + cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so || die
> > fi
> > fi
> >
> > ejam ${OPTIONS} \
> > --includedir="${D}usr/include" \
> > --libdir="${D}usr/$(get_libdir)" \
> > - $(use python && echo --python-buildid=${PYTHON_ABI}) \
> > + $(use python && echo --python-buildid=${EPYTHON#python}) \
> > install || die "Installation of Boost libraries failed"
> >
> > if use python; then
> > @@ -222,10 +215,12 @@ else:
> > del sys
> > EOF
> > fi
> > +
> > + python_optimize
> > fi
> > }
> > if use python; then
> > - python_execute_function installation
> > + python_foreach_impl installation
> > else
> > installation
> > fi
> > @@ -320,18 +315,6 @@ pkg_preinst() {
> > done
> > }
> >
> > -pkg_postinst() {
> > - if use mpi && use python; then
> > - python_mod_optimize boost
> > - fi
> > -}
> > -
> > -pkg_postrm() {
> > - if use mpi && use python; then
> > - python_mod_cleanup boost
> > - fi
> > -}
> > -
> > # the tests will never fail because these are not intended as sanity
> > # tests at all. They are more a way for upstream to check their own code
> > # on new compilers. Since they would either be completely unreliable
>
>
>
--
Best regards,
Michał Górny
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 316 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* [gentoo-python] [PATCH] Pass absolute Python interpreter path to boost.
2012-12-15 11:34 ` [gentoo-python] " Tiziano Müller
@ 2012-12-15 14:27 ` Michał Górny
0 siblings, 0 replies; 10+ messages in thread
From: Michał Górny @ 2012-12-15 14:27 UTC (permalink / raw
To: gentoo-python; +Cc: python, cpp, Michał Górny
This is the way recommended upstream, and it guarantees that our Python
interpreter will be used, along with paths and version obtained from it.
---
gx86/dev-libs/boost/boost-1.52.0-r5.ebuild | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild b/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
index 10bd293..55e0f89 100644
--- a/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
+++ b/gx86/dev-libs/boost/boost-1.52.0-r5.ebuild
@@ -49,7 +49,7 @@ create_user-config.jam() {
fi
if use python; then
- python_configuration="using python : ${EPYTHON#python} ;"
+ python_configuration="using python : : ${PYTHON} ;"
fi
cat > user-config.jam << __EOF__
--
1.8.0.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2012-12-15 14:27 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-14 22:08 [gentoo-python] [PATCHes] boost migration to python-r1 Michał Górny
2012-12-14 22:08 ` [gentoo-python] [PATCH 1/3] Let boost figure out the Python includedir itself Michał Górny
2012-12-15 11:34 ` [gentoo-python] " Tiziano Müller
2012-12-15 14:27 ` [gentoo-python] [PATCH] Pass absolute Python interpreter path to boost Michał Górny
2012-12-14 22:08 ` [gentoo-python] [PATCH 2/3] Commonize out $(python_get_sitedir)/boost into a variable Michał Górny
2012-12-15 11:35 ` [gentoo-python] " Tiziano Müller
2012-12-15 12:02 ` Michał Górny
2012-12-14 22:08 ` [gentoo-python] [PATCH 3/3] Convert to python-r1 Michał Górny
2012-12-15 11:42 ` [gentoo-python] " Tiziano Müller
2012-12-15 12:17 ` Michał Górny
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox