You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
python{27,34,35,36}: backport universal fix
Also fix configure failure with recent Xcode.
This commit is contained in:
+25
-25
@@ -8,7 +8,7 @@ name python27
|
||||
epoch 2
|
||||
# Remember to keep py27-tkinter and py27-gdbm's versions sync'd with this
|
||||
version 2.7.18
|
||||
revision 8
|
||||
revision 10
|
||||
|
||||
set major [lindex [split $version .] 0]
|
||||
set branch [join [lrange [split ${version} .] 0 1] .]
|
||||
@@ -74,8 +74,6 @@ if {${subport} eq ${name}} {
|
||||
|
||||
# This port is used by clang-3.4 to bootstrap libcxx
|
||||
subport ${name}-bootstrap {
|
||||
revision 9
|
||||
|
||||
depends_extract port:xz-bootstrap
|
||||
depends_skip_archcheck-append \
|
||||
xz-bootstrap
|
||||
@@ -178,26 +176,6 @@ platform darwin {
|
||||
}
|
||||
}
|
||||
|
||||
post-build {
|
||||
set buildlibdir [lindex [glob -directory ${worksrcpath}/build lib.*-*-*-${branch}] 0]
|
||||
# preserve mtime of _sysconfigdata.py to avoid rebuilding things after changing it
|
||||
set oldmtime [file mtime ${buildlibdir}/_sysconfigdata.py]
|
||||
|
||||
# change LINKFORSHARED to support dependents that incorrectly use it
|
||||
system -W ${buildlibdir} "awk -F : \
|
||||
\"/'LINKFORSHARED'/ {printf \\\"%s: '-L${framewdir}/lib/python${branch}/config\
|
||||
-lpython${branch} -ldl -framework CoreFoundation',\\n\\\", \\\$1; next} {print}\"\
|
||||
_sysconfigdata.py > _sysconfigdata.py.new"
|
||||
file rename -force ${buildlibdir}/_sysconfigdata.py.new \
|
||||
${buildlibdir}/_sysconfigdata.py
|
||||
|
||||
# remove -arch flags from the config
|
||||
reinplace -E {s|-arch [a-z0-9_]+||g} \
|
||||
${buildlibdir}/_sysconfigdata.py
|
||||
|
||||
file mtime ${buildlibdir}/_sysconfigdata.py $oldmtime
|
||||
}
|
||||
|
||||
post-destroot {
|
||||
foreach dir { Headers Resources Python Versions/Current } {
|
||||
file delete ${destroot}${framewpath}/${dir}
|
||||
@@ -207,17 +185,39 @@ platform darwin {
|
||||
ln -s ${framewdir}/Python ${destroot}${prefix}/lib/libpython${branch}.dylib
|
||||
ln -s ${framewdir}/lib/pkgconfig/python-${branch}.pc ${destroot}${prefix}/lib/pkgconfig/
|
||||
|
||||
set libdir ${destroot}${framewdir}/lib/python${branch}
|
||||
# change LINKFORSHARED to support dependents that incorrectly use it
|
||||
system -W ${libdir} "awk -F : \
|
||||
\"/'LINKFORSHARED'/ {printf \\\"%s: '-L${framewdir}/lib/python${branch}/config\
|
||||
-lpython${branch} -ldl -framework CoreFoundation',\\n\\\", \\\$1; next} {print}\"\
|
||||
_sysconfigdata.py > _sysconfigdata.py.new"
|
||||
file rename -force ${libdir}/_sysconfigdata.py.new \
|
||||
${libdir}/_sysconfigdata.py
|
||||
|
||||
# remove -arch flags from the config
|
||||
reinplace -E {s|-arch [a-z0-9_]+||g} \
|
||||
${libdir}/_sysconfigdata.py
|
||||
|
||||
# recompile the modified file
|
||||
set python_for_build python.exe
|
||||
# executable differs depending on filesystem case sensitivity
|
||||
if {![file exists ${worksrcpath}/${python_for_build}]} {
|
||||
set python_for_build python
|
||||
}
|
||||
system -W ${worksrcpath} "env DYLD_FRAMEWORK_PATH=. ./${python_for_build} -E -m compileall -d [shellescape ${framewdir}/lib/python${branch}] [shellescape ${libdir}/_sysconfigdata.py]"
|
||||
system -W ${worksrcpath} "env DYLD_FRAMEWORK_PATH=. ./${python_for_build} -E -O -m compileall -d [shellescape ${framewdir}/lib/python${branch}] [shellescape ${libdir}/_sysconfigdata.py]"
|
||||
|
||||
# Without this, LINKFORSHARED is set to
|
||||
# ... $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)
|
||||
# (this becomes Python.framework/Versions/2.7/Python) which doesn't
|
||||
# quite work (see ticket #15099); instead we mirror the behavior of
|
||||
# `python-config --ldflags` here.
|
||||
reinplace {s|^\(LINKFORSHARED=\).*$|\1 -L$(LIBPL) -lpython$(VERSION) $(LIBS) $(SYSLIBS)|} \
|
||||
${destroot}${framewdir}/lib/python${branch}/config/Makefile
|
||||
${libdir}/config/Makefile
|
||||
|
||||
# remove -arch flags from the config
|
||||
reinplace -E {s|-arch [a-z0-9_]+||g} \
|
||||
${destroot}${framewdir}/lib/python${branch}/config/Makefile
|
||||
${libdir}/config/Makefile
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+42
-37
@@ -10,7 +10,7 @@ name python34
|
||||
epoch 20170810
|
||||
# Remember to keep py34-tkinter and py34-gdbm's versions sync'd with this
|
||||
version 3.4.10
|
||||
revision 8
|
||||
revision 9
|
||||
|
||||
deprecated.eol_version yes
|
||||
|
||||
@@ -90,6 +90,8 @@ configure.args --enable-framework=${frameworks_dir} \
|
||||
--with-system-ffi
|
||||
|
||||
configure.ccache no
|
||||
# pkg-config removes -I flags for paths in CPATH, which confuses python.
|
||||
configure.env PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
|
||||
|
||||
post-patch {
|
||||
reinplace "s|@@PREFIX@@|${prefix}|g" \
|
||||
@@ -128,37 +130,15 @@ platform darwin {
|
||||
set confdir config-${branch}m
|
||||
|
||||
post-configure {
|
||||
# poll() misbehaves on 10.8 and older
|
||||
# See https://trac.macports.org/ticket/18376
|
||||
set oldmtime [file mtime ${worksrcpath}/pyconfig.h]
|
||||
system -W ${worksrcpath} "ed - pyconfig.h < ${filespath}/pyconfig.ed"
|
||||
file mtime ${worksrcpath}/pyconfig.h $oldmtime
|
||||
if {${os.major} <= 12} {
|
||||
set oldmtime [file mtime ${worksrcpath}/pyconfig.h]
|
||||
system -W ${worksrcpath} "ed - pyconfig.h < ${filespath}/pyconfig.ed"
|
||||
file mtime ${worksrcpath}/pyconfig.h $oldmtime
|
||||
}
|
||||
}
|
||||
post-build {
|
||||
set buildlibdir [lindex [glob -directory ${worksrcpath}/build lib.*-*-*-${branch}] 0]
|
||||
# preserve mtime of sysconfig data file to avoid rebuilding things after changing it
|
||||
set oldmtime [file mtime ${buildlibdir}/_sysconfigdata.py]
|
||||
|
||||
# Without this, LINKFORSHARED is set to
|
||||
# ... $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)
|
||||
# (this becomes Python.framework/Versions/3.4/Python) which doesn't
|
||||
# work for dependents that incorrectly use this variable to find out
|
||||
# how to link against python (see ticket #15099); instead we mirror
|
||||
# the behavior of `python-config --ldflags` here.
|
||||
set lfs_pattern {^([[:space:]]*'LINKFORSHARED':).*}
|
||||
set lfs_replacement "\\1 '-L${framewdir}/lib/python${branch}/${confdir} -lpython${branch}m -ldl -framework CoreFoundation',"
|
||||
reinplace -E s|${lfs_pattern}|${lfs_replacement}| \
|
||||
${buildlibdir}/_sysconfigdata.py
|
||||
|
||||
# remove -arch flags from the config
|
||||
reinplace -E {s|-arch [a-z0-9_]+||g} \
|
||||
${buildlibdir}/_sysconfigdata.py
|
||||
|
||||
# also remove gettext overlinking
|
||||
reinplace "s|-lintl||" \
|
||||
${buildlibdir}/_sysconfigdata.py
|
||||
|
||||
file mtime ${buildlibdir}/_sysconfigdata.py $oldmtime
|
||||
}
|
||||
post-destroot {
|
||||
foreach dir { Headers Resources Python Versions/Current } {
|
||||
file delete ${destroot}${framewpath}/${dir}
|
||||
@@ -168,15 +148,44 @@ platform darwin {
|
||||
ln -s ${framewdir}/lib/pkgconfig/python-${branch}.pc ${destroot}${prefix}/lib/pkgconfig/
|
||||
ln -s ${framewdir}/lib/pkgconfig/python-${branch}.pc ${destroot}${prefix}/lib/pkgconfig/python-${branch}m.pc
|
||||
|
||||
set libdir ${destroot}${framewdir}/lib/python${branch}
|
||||
# Without this, LINKFORSHARED is set to
|
||||
# ... $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)
|
||||
# (this becomes Python.framework/Versions/3.4/Python) which doesn't
|
||||
# work for dependents that incorrectly use this variable to find out
|
||||
# how to link against python (see ticket #15099); instead we mirror
|
||||
# the behavior of `python-config --ldflags` here.
|
||||
set lfs_pattern {^([[:space:]]*'LINKFORSHARED':).*}
|
||||
set lfs_replacement "\\1 '-L${framewdir}/lib/python${branch}/${confdir} -lpython${branch}m -ldl -framework CoreFoundation',"
|
||||
reinplace -E s|${lfs_pattern}|${lfs_replacement}| \
|
||||
${libdir}/_sysconfigdata.py
|
||||
|
||||
# remove -arch flags from the config
|
||||
reinplace -E {s|-arch [a-z0-9_]+||g} \
|
||||
${libdir}/_sysconfigdata.py
|
||||
|
||||
# also remove gettext overlinking
|
||||
reinplace "s|-lintl||" \
|
||||
${libdir}/_sysconfigdata.py
|
||||
|
||||
# recompile the modified file
|
||||
set python_for_build python.exe
|
||||
# executable differs depending on filesystem case sensitivity
|
||||
if {![file exists ${worksrcpath}/${python_for_build}]} {
|
||||
set python_for_build python
|
||||
}
|
||||
system -W ${worksrcpath} "env DYLD_FRAMEWORK_PATH=. ./${python_for_build} -E -m compileall -d [shellescape ${framewdir}/lib/python${branch}] [shellescape ${libdir}/_sysconfigdata.py]"
|
||||
system -W ${worksrcpath} "env DYLD_FRAMEWORK_PATH=. ./${python_for_build} -E -O -m compileall -d [shellescape ${framewdir}/lib/python${branch}] [shellescape ${libdir}/_sysconfigdata.py]"
|
||||
|
||||
# Also make the sysconfig changes in the Makefile
|
||||
reinplace {s|^\(LINKFORSHARED=\).*$|\1 -L$(LIBPL) -lpython$(VERSION)$(ABIFLAGS) $(LIBS) $(SYSLIBS)|} \
|
||||
${destroot}${framewdir}/lib/python${branch}/${confdir}/Makefile
|
||||
${libdir}/${confdir}/Makefile
|
||||
|
||||
reinplace -E {s|-arch [a-z0-9_]+||g} \
|
||||
${destroot}${framewdir}/lib/python${branch}/${confdir}/Makefile
|
||||
${libdir}/${confdir}/Makefile
|
||||
|
||||
reinplace "s|-lintl||" \
|
||||
${destroot}${framewdir}/lib/python${branch}/${confdir}/Makefile
|
||||
${libdir}/${confdir}/Makefile
|
||||
}
|
||||
}
|
||||
|
||||
@@ -205,11 +214,7 @@ variant universal {
|
||||
${worksrcpath}/configure
|
||||
}
|
||||
}
|
||||
if {${configure.sdkroot} ne ""} {
|
||||
configure.args-append --enable-universalsdk=${configure.sdkroot}
|
||||
} else {
|
||||
configure.args-append --enable-universalsdk=/
|
||||
}
|
||||
configure.args-append --enable-universalsdk=${configure.sysroot}
|
||||
post-configure {
|
||||
set oldmtime [file mtime ${worksrcpath}/pyconfig.h]
|
||||
system -W ${worksrcpath} "ed - pyconfig.h < ${filespath}/pyconfig.h-universal.ed"
|
||||
|
||||
+45
-38
@@ -10,7 +10,7 @@ name python35
|
||||
epoch 20170810
|
||||
# Remember to keep py35-tkinter and py35-gdbm's versions sync'd with this
|
||||
version 3.5.10
|
||||
revision 4
|
||||
revision 5
|
||||
|
||||
deprecated.eol_version yes
|
||||
|
||||
@@ -46,7 +46,8 @@ patchfiles patch-setup.py.diff \
|
||||
patch-_osx_support.py.diff \
|
||||
darwin20.diff \
|
||||
implicit.patch \
|
||||
sysconfig.py.diff
|
||||
sysconfig.py.diff \
|
||||
multiarch.patch
|
||||
|
||||
depends_build port:pkgconfig
|
||||
depends_lib port:bzip2 \
|
||||
@@ -89,6 +90,8 @@ configure.args --enable-framework=${frameworks_dir} \
|
||||
--with-system-ffi
|
||||
|
||||
configure.ccache no
|
||||
# pkg-config removes -I flags for paths in CPATH, which confuses python.
|
||||
configure.env PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
|
||||
|
||||
post-patch {
|
||||
reinplace "s|@@PREFIX@@|${prefix}|g" \
|
||||
@@ -127,37 +130,15 @@ platform darwin {
|
||||
set confdir config-${branch}m
|
||||
|
||||
post-configure {
|
||||
# poll() misbehaves on 10.8 and older
|
||||
# See https://trac.macports.org/ticket/18376
|
||||
set oldmtime [file mtime ${worksrcpath}/pyconfig.h]
|
||||
system -W ${worksrcpath} "ed - pyconfig.h < ${filespath}/pyconfig.ed"
|
||||
file mtime ${worksrcpath}/pyconfig.h $oldmtime
|
||||
if {${os.major} <= 12} {
|
||||
set oldmtime [file mtime ${worksrcpath}/pyconfig.h]
|
||||
system -W ${worksrcpath} "ed - pyconfig.h < ${filespath}/pyconfig.ed"
|
||||
file mtime ${worksrcpath}/pyconfig.h $oldmtime
|
||||
}
|
||||
}
|
||||
post-build {
|
||||
set buildlibdir [lindex [glob -directory ${worksrcpath}/build lib.*-*-*-${branch}] 0]
|
||||
# preserve mtime of sysconfig data file to avoid rebuilding things after changing it
|
||||
set oldmtime [file mtime ${buildlibdir}/_sysconfigdata.py]
|
||||
|
||||
# Without this, LINKFORSHARED is set to
|
||||
# ... $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)
|
||||
# (this becomes Python.framework/Versions/3.5/Python) which doesn't
|
||||
# work for dependents that incorrectly use this variable to find out
|
||||
# how to link against python (see ticket #15099); instead we mirror
|
||||
# the behavior of `python-config --ldflags` here.
|
||||
set lfs_pattern {^([[:space:]]*'LINKFORSHARED':).*}
|
||||
set lfs_replacement "\\1 '-L${framewdir}/lib/python${branch}/${confdir} -lpython${branch}m -ldl -framework CoreFoundation',"
|
||||
reinplace -E s|${lfs_pattern}|${lfs_replacement}| \
|
||||
${buildlibdir}/_sysconfigdata.py
|
||||
|
||||
# remove -arch flags from the config
|
||||
reinplace -E {s|-arch [a-z0-9_]+||g} \
|
||||
${buildlibdir}/_sysconfigdata.py
|
||||
|
||||
# also remove gettext overlinking
|
||||
reinplace "s|-lintl||" \
|
||||
${buildlibdir}/_sysconfigdata.py
|
||||
|
||||
file mtime ${buildlibdir}/_sysconfigdata.py $oldmtime
|
||||
}
|
||||
post-destroot {
|
||||
foreach dir { Headers Resources Python Versions/Current } {
|
||||
file delete ${destroot}${framewpath}/${dir}
|
||||
@@ -167,15 +148,45 @@ platform darwin {
|
||||
ln -s ${framewdir}/lib/pkgconfig/python-${branch}.pc ${destroot}${prefix}/lib/pkgconfig/
|
||||
ln -s ${framewdir}/lib/pkgconfig/python-${branch}.pc ${destroot}${prefix}/lib/pkgconfig/python-${branch}m.pc
|
||||
|
||||
set libdir ${destroot}${framewdir}/lib/python${branch}
|
||||
# Without this, LINKFORSHARED is set to
|
||||
# ... $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)
|
||||
# (this becomes Python.framework/Versions/3.5/Python) which doesn't
|
||||
# work for dependents that incorrectly use this variable to find out
|
||||
# how to link against python (see ticket #15099); instead we mirror
|
||||
# the behavior of `python-config --ldflags` here.
|
||||
set lfs_pattern {^([[:space:]]*'LINKFORSHARED':).*}
|
||||
set lfs_replacement "\\1 '-L${framewdir}/lib/python${branch}/${confdir} -lpython${branch}m -ldl -framework CoreFoundation',"
|
||||
reinplace -E s|${lfs_pattern}|${lfs_replacement}| \
|
||||
${libdir}/_sysconfigdata.py
|
||||
|
||||
# remove -arch flags from the config
|
||||
reinplace -E {s|-arch [a-z0-9_]+||g} \
|
||||
${libdir}/_sysconfigdata.py
|
||||
|
||||
# also remove gettext overlinking
|
||||
reinplace "s|-lintl||" \
|
||||
${libdir}/_sysconfigdata.py
|
||||
|
||||
# recompile the modified file
|
||||
set python_for_build python.exe
|
||||
# executable differs depending on filesystem case sensitivity
|
||||
if {![file exists ${worksrcpath}/${python_for_build}]} {
|
||||
set python_for_build python
|
||||
}
|
||||
system -W ${worksrcpath} "env DYLD_FRAMEWORK_PATH=. ./${python_for_build} -E -m compileall -d [shellescape ${framewdir}/lib/python${branch}] [shellescape ${libdir}/_sysconfigdata.py]"
|
||||
system -W ${worksrcpath} "env DYLD_FRAMEWORK_PATH=. ./${python_for_build} -E -O -m compileall -d [shellescape ${framewdir}/lib/python${branch}] [shellescape ${libdir}/_sysconfigdata.py]"
|
||||
system -W ${worksrcpath} "env DYLD_FRAMEWORK_PATH=. ./${python_for_build} -E -OO -m compileall -d [shellescape ${framewdir}/lib/python${branch}] [shellescape ${libdir}/_sysconfigdata.py]"
|
||||
|
||||
# Also make the sysconfig changes in the Makefile
|
||||
reinplace {s|^\(LINKFORSHARED=\).*$|\1 -L$(LIBPL) -lpython$(VERSION)$(ABIFLAGS) $(LIBS) $(SYSLIBS)|} \
|
||||
${destroot}${framewdir}/lib/python${branch}/${confdir}/Makefile
|
||||
${libdir}/${confdir}/Makefile
|
||||
|
||||
reinplace -E {s|-arch [a-z0-9_]+||g} \
|
||||
${destroot}${framewdir}/lib/python${branch}/${confdir}/Makefile
|
||||
${libdir}/${confdir}/Makefile
|
||||
|
||||
reinplace "s|-lintl||" \
|
||||
${destroot}${framewdir}/lib/python${branch}/${confdir}/Makefile
|
||||
${libdir}/${confdir}/Makefile
|
||||
}
|
||||
}
|
||||
|
||||
@@ -204,11 +215,7 @@ variant universal {
|
||||
${worksrcpath}/configure
|
||||
}
|
||||
}
|
||||
if {${configure.sdkroot} ne ""} {
|
||||
configure.args-append --enable-universalsdk=${configure.sdkroot}
|
||||
} else {
|
||||
configure.args-append --enable-universalsdk=/
|
||||
}
|
||||
configure.args-append --enable-universalsdk=${configure.sysroot}
|
||||
post-configure {
|
||||
set oldmtime [file mtime ${worksrcpath}/pyconfig.h]
|
||||
system -W ${worksrcpath} "ed - pyconfig.h < ${filespath}/pyconfig.h-universal.ed"
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
https://github.com/python/cpython/pull/28845
|
||||
|
||||
--- configure.orig 2020-09-05 17:22:07.000000000 +1000
|
||||
+++ configure 2022-05-10 21:31:09.000000000 +1000
|
||||
@@ -5251,7 +5251,6 @@
|
||||
fi
|
||||
|
||||
|
||||
-MULTIARCH=$($CC --print-multiarch 2>/dev/null)
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5
|
||||
@@ -5380,6 +5379,10 @@
|
||||
fi
|
||||
rm -f conftest.c conftest.out
|
||||
|
||||
+if test x$PLATFORM_TRIPLET != xdarwin; then
|
||||
+ MULTIARCH=$($CC --print-multiarch 2>/dev/null)
|
||||
+fi
|
||||
+
|
||||
if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
|
||||
if test x$PLATFORM_TRIPLET != x$MULTIARCH; then
|
||||
as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5
|
||||
+39
-30
@@ -10,7 +10,7 @@ name python36
|
||||
epoch 20170717
|
||||
# Remember to keep py36-tkinter and py36-gdbm's versions sync'd with this
|
||||
version 3.6.15
|
||||
revision 2
|
||||
revision 3
|
||||
|
||||
deprecated.eol_version yes
|
||||
|
||||
@@ -43,7 +43,8 @@ patchfiles patch-setup.py.diff \
|
||||
patch-_osx_support.py.diff \
|
||||
darwin20.diff \
|
||||
implicit.patch \
|
||||
sysconfig.py.diff
|
||||
sysconfig.py.diff \
|
||||
multiarch.patch
|
||||
|
||||
depends_build port:pkgconfig
|
||||
depends_lib port:bzip2 \
|
||||
@@ -86,6 +87,8 @@ configure.args --enable-framework=${frameworks_dir} \
|
||||
--with-system-ffi
|
||||
|
||||
configure.ccache no
|
||||
# pkg-config removes -I flags for paths in CPATH, which confuses python.
|
||||
configure.env PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
|
||||
|
||||
post-patch {
|
||||
reinplace "s|@@PREFIX@@|${prefix}|g" \
|
||||
@@ -114,6 +117,7 @@ platform darwin {
|
||||
set framewpath ${frameworks_dir}/Python.framework
|
||||
set framewdir ${framewpath}/Versions/${branch}
|
||||
set confdir config-${branch}m-darwin
|
||||
|
||||
post-configure {
|
||||
# poll() misbehaves on 10.8 and older
|
||||
# See https://trac.macports.org/ticket/18376
|
||||
@@ -123,32 +127,7 @@ platform darwin {
|
||||
file mtime ${worksrcpath}/pyconfig.h $oldmtime
|
||||
}
|
||||
}
|
||||
post-build {
|
||||
set buildlibdir [lindex [glob -directory ${worksrcpath}/build lib.*-*-*-${branch}] 0]
|
||||
# preserve mtime of sysconfig data file to avoid rebuilding things after changing it
|
||||
set oldmtime [file mtime ${buildlibdir}/_sysconfigdata_m_darwin_darwin.py]
|
||||
|
||||
# Without this, LINKFORSHARED is set to
|
||||
# ... $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)
|
||||
# (this becomes Python.framework/Versions/3.6/Python) which doesn't
|
||||
# work for dependents that incorrectly use this variable to find out
|
||||
# how to link against python (see ticket #15099); instead we mirror
|
||||
# the behavior of `python-config --ldflags` here.
|
||||
set lfs_pattern {^([[:space:]]*'LINKFORSHARED':).*}
|
||||
set lfs_replacement "\\1 '-L${framewdir}/lib/python${branch}/${confdir} -lpython${branch}m -ldl -framework CoreFoundation',"
|
||||
reinplace -E s|${lfs_pattern}|${lfs_replacement}| \
|
||||
${buildlibdir}/_sysconfigdata_m_darwin_darwin.py
|
||||
|
||||
# remove -arch flags from the config
|
||||
reinplace -E {s|-arch [a-z0-9_]+||g} \
|
||||
${buildlibdir}/_sysconfigdata_m_darwin_darwin.py
|
||||
|
||||
# also remove gettext overlinking
|
||||
reinplace "s|-lintl||" \
|
||||
${buildlibdir}/_sysconfigdata_m_darwin_darwin.py
|
||||
|
||||
file mtime ${buildlibdir}/_sysconfigdata_m_darwin_darwin.py $oldmtime
|
||||
}
|
||||
post-destroot {
|
||||
foreach dir { Headers Resources Python Versions/Current } {
|
||||
file delete ${destroot}${framewpath}/${dir}
|
||||
@@ -158,15 +137,45 @@ platform darwin {
|
||||
ln -s ${framewdir}/lib/pkgconfig/python-${branch}.pc ${destroot}${prefix}/lib/pkgconfig/
|
||||
ln -s ${framewdir}/lib/pkgconfig/python-${branch}.pc ${destroot}${prefix}/lib/pkgconfig/python-${branch}m.pc
|
||||
|
||||
set libdir ${destroot}${framewdir}/lib/python${branch}
|
||||
# Without this, LINKFORSHARED is set to
|
||||
# ... $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)
|
||||
# (this becomes Python.framework/Versions/3.6/Python) which doesn't
|
||||
# work for dependents that incorrectly use this variable to find out
|
||||
# how to link against python (see ticket #15099); instead we mirror
|
||||
# the behavior of `python-config --ldflags` here.
|
||||
set lfs_pattern {^([[:space:]]*'LINKFORSHARED':).*}
|
||||
set lfs_replacement "\\1 '-L${framewdir}/lib/python${branch}/${confdir} -lpython${branch}m -ldl -framework CoreFoundation',"
|
||||
reinplace -E s|${lfs_pattern}|${lfs_replacement}| \
|
||||
${libdir}/_sysconfigdata_m_darwin_darwin.py
|
||||
|
||||
# remove -arch flags from the config
|
||||
reinplace -E {s|-arch [a-z0-9_]+||g} \
|
||||
${libdir}/_sysconfigdata_m_darwin_darwin.py
|
||||
|
||||
# also remove gettext overlinking
|
||||
reinplace "s|-lintl||" \
|
||||
${libdir}/_sysconfigdata_m_darwin_darwin.py
|
||||
|
||||
# recompile the modified file
|
||||
set python_for_build python.exe
|
||||
# executable differs depending on filesystem case sensitivity
|
||||
if {![file exists ${worksrcpath}/${python_for_build}]} {
|
||||
set python_for_build python
|
||||
}
|
||||
system -W ${worksrcpath} "env DYLD_FRAMEWORK_PATH=. ./${python_for_build} -E -m compileall -d [shellescape ${framewdir}/lib/python${branch}] [shellescape ${libdir}/_sysconfigdata_m_darwin_darwin.py]"
|
||||
system -W ${worksrcpath} "env DYLD_FRAMEWORK_PATH=. ./${python_for_build} -E -O -m compileall -d [shellescape ${framewdir}/lib/python${branch}] [shellescape ${libdir}/_sysconfigdata_m_darwin_darwin.py]"
|
||||
system -W ${worksrcpath} "env DYLD_FRAMEWORK_PATH=. ./${python_for_build} -E -OO -m compileall -d [shellescape ${framewdir}/lib/python${branch}] [shellescape ${libdir}/_sysconfigdata_m_darwin_darwin.py]"
|
||||
|
||||
# Also make the sysconfig changes in the Makefile
|
||||
reinplace {s|^\(LINKFORSHARED=\).*$|\1 -L$(LIBPL) -lpython$(VERSION)$(ABIFLAGS) $(LIBS) $(SYSLIBS)|} \
|
||||
${destroot}${framewdir}/lib/python${branch}/${confdir}/Makefile
|
||||
${libdir}/${confdir}/Makefile
|
||||
|
||||
reinplace -E {s|-arch [a-z0-9_]+||g} \
|
||||
${destroot}${framewdir}/lib/python${branch}/${confdir}/Makefile
|
||||
${libdir}/${confdir}/Makefile
|
||||
|
||||
reinplace "s|-lintl||" \
|
||||
${destroot}${framewdir}/lib/python${branch}/${confdir}/Makefile
|
||||
${libdir}/${confdir}/Makefile
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
https://github.com/python/cpython/pull/28845
|
||||
|
||||
--- configure.orig 2021-09-04 13:49:41.000000000 +1000
|
||||
+++ configure 2022-05-10 20:44:33.000000000 +1000
|
||||
@@ -5203,7 +5203,6 @@
|
||||
fi
|
||||
|
||||
|
||||
-MULTIARCH=$($CC --print-multiarch 2>/dev/null)
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5
|
||||
@@ -5334,6 +5333,10 @@
|
||||
fi
|
||||
rm -f conftest.c conftest.out
|
||||
|
||||
+if test x$PLATFORM_TRIPLET != xdarwin; then
|
||||
+ MULTIARCH=$($CC --print-multiarch 2>/dev/null)
|
||||
+fi
|
||||
+
|
||||
if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
|
||||
if test x$PLATFORM_TRIPLET != x$MULTIARCH; then
|
||||
as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5
|
||||
Reference in New Issue
Block a user