aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordbaio <dbaio@FreeBSD.org>2017-06-28 10:37:53 +0800
committerdbaio <dbaio@FreeBSD.org>2017-06-28 10:37:53 +0800
commitf838c9285461300c9b4697b08b3b45572fab97ca (patch)
treed2b4ddfd03e7b70d56574342bf5a5d811bb76dc0
parent759c687a0669acff0184ad178288997c00a750bf (diff)
downloadfreebsd-ports-gnome-f838c9285461300c9b4697b08b3b45572fab97ca.tar.gz
freebsd-ports-gnome-f838c9285461300c9b4697b08b3b45572fab97ca.tar.zst
freebsd-ports-gnome-f838c9285461300c9b4697b08b3b45572fab97ca.zip
lang/python{27,33,34,35,36}: Make Python curses module work with Unicode
Use readline from ports (USES= readline:port) and patch setup.py to ignore readline from base. The patch is necessary for FreeBSD < 1100000, as after this the readline library became an INTERNALLIB, see base r268461 [1] Link devel/readline against termcapw instead of termcap is part of this change, see ports r444463 [2] Note that this is the **ports** approach for getting Python curses module working with Unicode. The other way is splitting libncurses into separate libncurses and libtinfo in base, for which an open issue exists [3]. Apart from Python language ports, at least www/rtv and sysutils/py-ranger ports have been tested to work correctly (display Unicode) after this change. [1] https://svnweb.freebsd.org/changeset/base/268461 [2] https://svnweb.freebsd.org/changeset/ports/444463 [3] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197317 PR: 171246, 197317 Reported by: Vitaly Magerya <vmagerya gmail com> Reviewed by: garga, koobs, miwi, sunpoet Approved by: garga (mentor), sunpoet (python, with hat) Differential Revision: https://reviews.freebsd.org/D11127
-rw-r--r--lang/python27/Makefile11
-rw-r--r--lang/python33/Makefile11
-rw-r--r--lang/python34/Makefile11
-rw-r--r--lang/python35/Makefile11
-rw-r--r--lang/python36/Makefile11
5 files changed, 45 insertions, 10 deletions
diff --git a/lang/python27/Makefile b/lang/python27/Makefile
index b77e4ec62215..0280eea82ddc 100644
--- a/lang/python27/Makefile
+++ b/lang/python27/Makefile
@@ -2,7 +2,7 @@
PORTNAME= python27
PORTVERSION= ${PYTHON_PORTVERSION}
-PORTREVISION= 5
+PORTREVISION= 6
CATEGORIES= lang python ipv6
MASTER_SITES= PYTHON/ftp/python/${PORTVERSION}
DISTNAME= Python-${PORTVERSION}
@@ -15,7 +15,7 @@ LICENSE= PSFL
BROKEN_SSL= openssl-devel
-USES= cpe ncurses pathfix pkgconfig readline ssl tar:xz shebangfix
+USES= cpe ncurses pathfix pkgconfig readline:port ssl tar:xz shebangfix
PATHFIX_MAKEFILEIN= Makefile.pre.in
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
@@ -115,6 +115,13 @@ PLIST_SUB+= NO_NIS=""
.endif
post-patch:
+# readline shared library is present on base before FreeBSD 11 - r268461
+# force setup.py ignore base and use readline from ports
+.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100000
+ ${REINPLACE_CMD} -e \
+ "s|lib_dirs,\ \'readline\'|[\'${LOCALBASE}/lib\',\ \'.\'],\ \'readline\'|" \
+ ${WRKSRC}/setup.py
+.endif
${REINPLACE_CMD} -e 's|/usr/local/bin/python|${python_CMD}|' \
${WRKSRC}/Lib/cgi.py
@${REINPLACE_CMD} -e \
diff --git a/lang/python33/Makefile b/lang/python33/Makefile
index cbcb8381065d..a7cbd32a89f9 100644
--- a/lang/python33/Makefile
+++ b/lang/python33/Makefile
@@ -2,7 +2,7 @@
PORTNAME= python33
PORTVERSION= ${PYTHON_PORTVERSION}
-PORTREVISION= 9
+PORTREVISION= 10
CATEGORIES= lang python ipv6
MASTER_SITES= PYTHON/ftp/python/${PORTVERSION}
DISTNAME= Python-${PORTVERSION}
@@ -16,7 +16,7 @@ LICENSE= PSFL
DEPRECATED= No longer receives bug fixes, only security updates. Please update to Python 3.6
EXPIRATION_DATE= 2017-09-01
-USES= cpe ncurses pathfix pkgconfig readline ssl tar:xz shebangfix
+USES= cpe ncurses pathfix pkgconfig readline:port ssl tar:xz shebangfix
PATHFIX_MAKEFILEIN= Makefile.pre.in
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
@@ -108,6 +108,13 @@ PLIST_SUB+= NO_NIS=""
.endif
post-patch:
+# readline shared library is present on base before FreeBSD 11 - r268461
+# force setup.py ignore base and use readline from ports
+.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100000
+ ${REINPLACE_CMD} -e \
+ "s|lib_dirs,\ \'readline\'|[\'${LOCALBASE}/lib\',\ \'.\'],\ \'readline\'|" \
+ ${WRKSRC}/setup.py
+.endif
${REINPLACE_CMD} -e 's|/usr/local/bin/python|${python_CMD}|' \
${WRKSRC}/Lib/cgi.py
.if !exists(/usr/bin/ypcat) || defined(WITHOUT_NIS)
diff --git a/lang/python34/Makefile b/lang/python34/Makefile
index a5501aef51b8..eb9ee91c9e57 100644
--- a/lang/python34/Makefile
+++ b/lang/python34/Makefile
@@ -3,7 +3,7 @@
PORTNAME= python34
PORTVERSION= ${PYTHON_PORTVERSION}
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= lang python ipv6
MASTER_SITES= PYTHON/ftp/python/${PORTVERSION}
DISTNAME= Python-${PORTVERSION}
@@ -14,7 +14,7 @@ COMMENT= Interpreted object-oriented programming language
LICENSE= PSFL
-USES= cpe ncurses pathfix pkgconfig readline ssl tar:xz shebangfix
+USES= cpe ncurses pathfix pkgconfig readline:port ssl tar:xz shebangfix
PATHFIX_MAKEFILEIN= Makefile.pre.in
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
@@ -117,6 +117,13 @@ PLIST_SUB+= NO_NIS=""
.endif
post-patch:
+# readline shared library is present on base before FreeBSD 11 - r268461
+# force setup.py ignore base and use readline from ports
+.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100000
+ ${REINPLACE_CMD} -e \
+ "s|lib_dirs,\ \'readline\'|[\'${LOCALBASE}/lib\',\ \'.\'],\ \'readline\'|" \
+ ${WRKSRC}/setup.py
+.endif
${REINPLACE_CMD} -e 's|/usr/local/bin/python|${python_CMD}|' \
${WRKSRC}/Lib/cgi.py
diff --git a/lang/python35/Makefile b/lang/python35/Makefile
index bf34136fb721..2cc776fb3655 100644
--- a/lang/python35/Makefile
+++ b/lang/python35/Makefile
@@ -3,7 +3,7 @@
PORTNAME= python
PORTVERSION= ${PYTHON_PORTVERSION}
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= lang python ipv6
MASTER_SITES= PYTHON/ftp/python/${PYTHON_PORTVERSION}
PKGNAMESUFFIX= ${PYTHON_SUFFIX}
@@ -17,7 +17,7 @@ LICENSE= PSFL
BROKEN_SSL= openssl-devel
-USES= cpe ncurses pathfix pkgconfig readline ssl tar:xz shebangfix
+USES= cpe ncurses pathfix pkgconfig readline:port ssl tar:xz shebangfix
PATHFIX_MAKEFILEIN= Makefile.pre.in
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
@@ -127,6 +127,13 @@ PLIST_SUB+= NO_NIS=""
.endif
post-patch:
+# readline shared library is present on base before FreeBSD 11 - r268461
+# force setup.py ignore base and use readline from ports
+.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100000
+ ${REINPLACE_CMD} -e \
+ "s|lib_dirs,\ \'readline\'|[\'${LOCALBASE}/lib\',\ \'.\'],\ \'readline\'|" \
+ ${WRKSRC}/setup.py
+.endif
${REINPLACE_CMD} -e 's|/usr/local/bin/python|${python_CMD}|' \
${WRKSRC}/Lib/cgi.py
diff --git a/lang/python36/Makefile b/lang/python36/Makefile
index 79bf5bd09fbc..cf0a8bac59ee 100644
--- a/lang/python36/Makefile
+++ b/lang/python36/Makefile
@@ -3,7 +3,7 @@
PORTNAME= python
PORTVERSION= ${PYTHON_PORTVERSION}
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= lang python ipv6
MASTER_SITES= PYTHON/ftp/python/${PYTHON_PORTVERSION}
PKGNAMESUFFIX= ${PYTHON_SUFFIX}
@@ -15,7 +15,7 @@ COMMENT= Interpreted object-oriented programming language
LICENSE= PSFL
-USES= cpe ncurses pathfix pkgconfig readline ssl tar:xz shebangfix
+USES= cpe ncurses pathfix pkgconfig readline:port ssl tar:xz shebangfix
PATHFIX_MAKEFILEIN= Makefile.pre.in
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
@@ -124,6 +124,13 @@ PLIST_SUB+= NO_NIS=""
.endif
post-patch:
+# readline shared library is present on base before FreeBSD 11 - r268461
+# force setup.py ignore base and use readline from ports
+.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100000
+ ${REINPLACE_CMD} -e \
+ "s|lib_dirs,\ \'readline\'|[\'${LOCALBASE}/lib\',\ \'.\'],\ \'readline\'|" \
+ ${WRKSRC}/setup.py
+.endif
${REINPLACE_CMD} -e 's|/usr/local/bin/python|${python_CMD}|' \
${WRKSRC}/Lib/cgi.py