commit:     c7ca0121e267a0935393ca8e754d64da3563bb22
Author:     Michael Haubenwallner <michael.haubenwallner <AT> ssi-schaefer 
<DOT> com>
AuthorDate: Wed May 11 10:43:03 2016 +0000
Commit:     Michael Haubenwallner <haubi <AT> gentoo <DOT> org>
CommitDate: Thu May 12 13:10:25 2016 +0000
URL:        https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=c7ca0121

python 2.7/3.4: Cygwin port, using cygwinports patches

 dev-lang/python/Manifest                         |  2 ++
 dev-lang/python/files/python-3.4-pyfpe-dll.patch | 24 ++++++++++++++++++++++++
 dev-lang/python/python-2.7.11.ebuild             | 20 +++++++++++++++++---
 dev-lang/python/python-3.4.3-r5.ebuild           | 17 +++++++++++++++++
 4 files changed, 60 insertions(+), 3 deletions(-)

diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest
index f9b8bd9..9366723 100644
--- a/dev-lang/python/Manifest
+++ b/dev-lang/python/Manifest
@@ -19,3 +19,5 @@ DIST python-prefix-3.2.5-gentoo-patches-r0.tar.bz2 9594 
SHA256 350924a35c352915d
 DIST python-prefix-3.3.3-gentoo-patches-r2.tar.bz2 13776 SHA256 
7e90671d26b60b874748efc95171f7bed149637b1d4aa34752d12fdac06d2d85 SHA512 
9859d5367ae1d655572236ffdeb49ac58ae4cf48a556428a9cfb80ac21552d0d8b1c89461f31e6a8dbfdfbc9ced01f510400963571d810e79156f2a3f753fffd
 WHIRLPOOL 
b5d45333fea0610e0efba2f0d113337d9004459ec733691406518709ff4c191060d868ead7a0db0e65f89e953d03fb164c5cd1dcc128a5c0e5af93fa7fc0ffd4
 DIST python-prefix-3.4.3-gentoo-patches-r0.tar.xz 12808 SHA256 
bb51649f6a586640463dd742170ff2fdb8c906128a97b1c0bb2b9cad0fe82d56 SHA512 
714e5cfa03cfd290a821dea641b91c4358a25bb1bcb47050b1cf321f0defa7e060a4cdd967bc356701642230b51f3c74476af96ff58a6f933301171e12ccfac8
 WHIRLPOOL 
f7ff0e0bebbeee221a18d5078f12c77922c7621e00f19254e72f68767647a7d2ff9312366b62023a7d4283def2d7f509572ad657bbb2c132355ee637c5697b0c
 DIST python-prefix-3.5.1-gentoo-patches-r1.tar.xz 12684 SHA256 
a15318c069a7cb463a58ac4d8754a94a5bac081c922f07ca6e1fc6b9b9efa44a SHA512 
a0086af9f361098ee7e51e260f9444c93a24c86898fe0fad8b08ad3d7f179c29bb97baa545f19fd8451d4668aa4d3894fe3769c1bf7a10f8342ded806bfd620d
 WHIRLPOOL 
7136d338feefe6d1b7d4ad7dabe9371066f254a3405f2f737d84c69c3a79f0926e2f338e131c7d90199a8948eae95087d454a930c17a7e2f3c360eb0defce4bf
+DIST 8ee84829be03c2a1aa74f0f095c994c1f43f4688.zip 14239 SHA256 
811b6fe82630a04a44a6d16074af76964e7e4005136ba479647eb741639099da SHA512 
2f3ada7ff2bd97f90e3b972b681624ddf45c6d1db8d5e89f1313b4693db240a3c4e27c84bd2cf8ff71d5fb276b381ca6a3b8a6945f8db53ff3496cc4cc0b1d62
+DIST 7be648659ef46f33db6913ca0ca5a809219d5629.zip 9173 SHA256 
39e2c7367357110d4bc89a5ba515cd0f419a22e45f0ffda73db6b676ac28b718 SHA512 
b1c654c852baf7891b834124607115cfaf3f1b8b7a58a9c3e8e46dd5b2f608d05d27e8a6222cc98ed83634bcfdcbbddcb888070d079cc8438db7e52320f113f9

diff --git a/dev-lang/python/files/python-3.4-pyfpe-dll.patch 
b/dev-lang/python/files/python-3.4-pyfpe-dll.patch
new file mode 100644
index 0000000..401529d
--- /dev/null
+++ b/dev-lang/python/files/python-3.4-pyfpe-dll.patch
@@ -0,0 +1,24 @@
+--- Python-3.4.3/Include/pyfpe.h
++++ Python-3.4.3/Include/pyfpe.h
+@@ -129,9 +129,9 @@
+ #include <signal.h>
+ #include <setjmp.h>
+ #include <math.h>
+-extern jmp_buf PyFPE_jbuf;
+-extern int PyFPE_counter;
+-extern double PyFPE_dummy(void *);
++PyAPI_DATA(jmp_buf) PyFPE_jbuf;
++PyAPI_DATA(int) PyFPE_counter;
++PyAPI_FUNC(double) PyFPE_dummy(void *);
+ 
+ #define PyFPE_START_PROTECT(err_string, leave_stmt) \
+ if (!PyFPE_counter++ && setjmp(PyFPE_jbuf)) { \
+--- Python-3.4.3/Python/pyfpe.c
++++ Python-3.4.3/Python/pyfpe.c
+@@ -1,5 +1,4 @@
+-#include "pyconfig.h"
+-#include "pyfpe.h"
++#include "Python.h"
+ /* 
+  * The signal handler for SIGFPE is actually declared in an external
+  * module fpectl, or as preferred by the user.  These variable

diff --git a/dev-lang/python/python-2.7.11.ebuild 
b/dev-lang/python/python-2.7.11.ebuild
index c43fd1f..1e491f8 100644
--- a/dev-lang/python/python-2.7.11.ebuild
+++ b/dev-lang/python/python-2.7.11.ebuild
@@ -10,6 +10,7 @@ inherit autotools eutils flag-o-matic multilib pax-utils 
python-utils-r1 toolcha
 MY_P="Python-${PV}"
 PATCHSET_VERSION="2.7.11-0"
 PREFIX_PATCHREV="r0"
+CYGWINPORTS_GITREV="7be648659ef46f33db6913ca0ca5a809219d5629"
 
 DESCRIPTION="An interpreted, interactive, object-oriented programming language"
 HOMEPAGE="http://www.python.org/";
@@ -17,6 +18,9 @@ SRC_URI="http://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
        
https://dev.gentoo.org/~djc/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz
        
https://dev.gentoo.org/~grobian/distfiles/python-prefix-${PV}-gentoo-patches-${PREFIX_PATCHREV}.tar.xz";
 
+[[ -n ${CYGWINPORTS_GITREV} ]] &&
+SRC_URI+=" elibc_Cygwin? ( 
https://github.com/cygwinports/python/archive/${CYGWINPORTS_GITREV}.zip )"
+
 LICENSE="PSF-2"
 SLOT="2.7"
 KEYWORDS="~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"
@@ -128,9 +132,7 @@ src_prepare() {
        epatch "${FILESDIR}/python-2.7.9-ncurses-pkg-config.patch"
        epatch "${FILESDIR}/python-2.7.10-cross-compile-warn-test.patch"
        epatch "${FILESDIR}/python-2.7.10-system-libffi.patch"
-
-       # On Cygwin, find_library("c") has to return "cygwin1.dll"
-       epatch "${FILESDIR}/python-2.5.2-cygwin-find_library.patch"
+       epatch "${FILESDIR}/python-3.4-pyfpe-dll.patch" # Cygwin: --with-fpectl
 
        # On AIX, we've wrapped /usr/ccs/bin/nm to work around long TMPDIR.
        sed -i -e "/^NM=.*nm$/s,^.*$,NM=$(tc-getNM)," Modules/makexp_aix || die
@@ -138,6 +140,18 @@ src_prepare() {
        # Make sure python doesn't use the host libffi.
        use prefix && epatch "${FILESDIR}/python-2.7-libffi-pkgconfig.patch"
 
+       if [[ -n ${CYGWINPORTS_GITREV} ]] && use elibc_Cygwin; then
+           local p d="${WORKDIR}/python-${CYGWINPORTS_GITREV}"
+           for p in $(
+                   eval "$(sed -ne '/PATCH_URI="/,/"/p' < 
"${d}"/python.cygport)"
+                   echo ${PATCH_URI}
+           ); do
+                       # dropped by 01_all_prefix-no-patch-invention.patch
+                       [[ ${p} == *-tkinter-* ]] && continue
+                   epatch "${d}/${p}"
+           done
+       fi
+
        sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
                Lib/distutils/command/install.py \
                Lib/distutils/sysconfig.py \

diff --git a/dev-lang/python/python-3.4.3-r5.ebuild 
b/dev-lang/python/python-3.4.3-r5.ebuild
index 1ea643d..b2a6a49 100644
--- a/dev-lang/python/python-3.4.3-r5.ebuild
+++ b/dev-lang/python/python-3.4.3-r5.ebuild
@@ -10,6 +10,7 @@ inherit autotools eutils flag-o-matic multilib pax-utils 
python-utils-r1 toolcha
 MY_P="Python-${PV/_/}"
 PATCHSET_VERSION="3.4.3-0"
 PREFIX_PATCHREV="r0"
+CYGWINPORTS_GITREV="8ee84829be03c2a1aa74f0f095c994c1f43f4688"
 
 DESCRIPTION="An interpreted, interactive, object-oriented programming language"
 HOMEPAGE="http://www.python.org/";
@@ -17,6 +18,9 @@ 
SRC_URI="http://www.python.org/ftp/python/${PV%_rc*}/${MY_P}.tar.xz
        
https://dev.gentoo.org/~floppym/python/python-gentoo-patches-${PATCHSET_VERSION}.tar.xz
        
https://dev.gentoo.org/~grobian/distfiles/python-prefix-${PV}-gentoo-patches-${PREFIX_PATCHREV}.tar.xz";
 
+[[ -n ${CYGWINPORTS_GITREV} ]] &&
+SRC_URI+=" elibc_Cygwin? ( 
https://github.com/cygwinports/python3/archive/${CYGWINPORTS_GITREV}.zip )"
+
 LICENSE="PSF-2"
 SLOT="3.4/3.4m"
 KEYWORDS="~ppc-aix ~x64-freebsd ~x86-freebsd ~amd64-linux ~x86-linux 
~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris 
~x64-solaris ~x86-solaris"
@@ -76,6 +80,7 @@ src_prepare() {
        EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
        epatch "${FILESDIR}/${PN}-3.4.3-ncurses-pkg-config.patch"
        epatch "${FILESDIR}/${PN}-3.4-gcc-5.patch" #547626
+       epatch "${FILESDIR}/${PN}-3.4-pyfpe-dll.patch" # Cygwin: --with-fpectl
 
        # Prefix' round of patches
        # http://prefix.gentooexperimental.org:8000/python-patches-3_3
@@ -98,6 +103,18 @@ src_prepare() {
        # Make sure python doesn't use the host libffi.
        use prefix && epatch "${FILESDIR}/python-3.2-libffi-pkgconfig.patch"
 
+       if [[ -n ${CYGWINPORTS_GITREV} ]] && use elibc_Cygwin; then
+           local p d="${WORKDIR}/python3-${CYGWINPORTS_GITREV}"
+           for p in $(
+                   eval "$(sed -ne '/PATCH_URI="/,/"/p' < 
"${d}"/python3.cygport)"
+                   echo ${PATCH_URI}
+           ); do
+                       # dropped by 01_all_prefix-no-patch-invention.patch
+                       [[ ${p} == *-tkinter-* ]] && continue
+                   epatch "${d}/${p}"
+           done
+       fi
+
        sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
                Lib/distutils/command/install.py \
                Lib/distutils/sysconfig.py \

Reply via email to