Bug 184140 - lang/python32 fails to build _posixsubprocess module on FreeBSD 10.0
Summary: lang/python32 fails to build _posixsubprocess module on FreeBSD 10.0
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-python (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-11-21 13:10 UTC by Yuta Sato
Modified: 2016-11-22 00:50 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yuta Sato 2013-11-21 13:10:00 UTC
HAVE_PIPE2 is defined on FreeBSD 10.0.
Parts of the problem requires O_CLOEXEC.

Problem code)
Python-3.2.5/Modules/_posixsubprocess.c

#ifdef HAVE_PIPE2
    Py_BEGIN_ALLOW_THREADS
    res = pipe2(fds, O_CLOEXEC);
    Py_END_ALLOW_THREADS
    if (res != 0 && errno == ENOSYS)
    {
        {
#endif


_XOPEN_SOURCE is set to 600 by configure.
When _XOPEN_SOURCE is 600, _POSIX_C_SOURCE 200112 and __POSIX_VISIBLE 200112 are defined by sys/cdefs.h.

However, to get O_CLOEXEC, __POSIX_VISIBLE >= 200809 is required to define on FreeBSD.

Please see https://bugs.gentoo.org/show_bug.cgi?id=490034 for more information on this issue.


error log.

building '_posixsubprocess' extension
cc -fPIC -DNDEBUG -O2 -pipe -fno-strict-aliasing -I../Include -I/usr/local/include -I/usr/ports/lang/python32/work/Python-3.2.5/portbld.static -c /usr/ports/lang/python32/work/Python-3.2.5/Modules/_posixsubprocess.c -o build/temp.freebsd-10.0-BETA3-amd64-3.2/usr/ports/lang/python32/work/Python-3.2.5/Modules/_posixsubprocess.o
/usr/ports/lang/python32/work/Python-3.2.5/Modules/_posixsubprocess.c:738:22: error: use of undeclared identifier 'O_CLOEXEC'
    res = pipe2(fds, O_CLOEXEC);
                     ^
1 error generated.
<snip>
Python build finished, but the necessary bits to build these modules were not found:
_gdbm              _sqlite3           _tkinter
spwd
To find the necessary bits, look in setup.py in detect_modules() for the module's name.


Failed to build these modules:
_posixsubprocess

Fix: 

add ac_cv_func_pipe2=no to CONFIGURE_ENV=.
How-To-Repeat: make in lang/python32.
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2013-11-21 13:10:07 UTC
Responsible Changed
From-To: freebsd-ports-bugs->freebsd-python

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 dfilter service freebsd_committer freebsd_triage 2013-11-30 10:48:48 UTC
Author: mva
Date: Sat Nov 30 10:48:41 2013
New Revision: 335280
URL: http://svnweb.freebsd.org/changeset/ports/335280

Log:
  - Unbreak the build on 10.x and newer, which provides pipe2()
    This relates to http://bugs.python.org/issue12852
  
  PR:		ports/184140
  Submitted by:	Yuta Sato <nigoro.gentoo@0x100.com>

Modified:
  head/lang/python32/Makefile

Modified: head/lang/python32/Makefile
==============================================================================
--- head/lang/python32/Makefile	Sat Nov 30 10:29:01 2013	(r335279)
+++ head/lang/python32/Makefile	Sat Nov 30 10:48:41 2013	(r335280)
@@ -150,6 +150,10 @@ post-patch:
 	    's/disabled_module_list =[^]]*/&, "nis"/' \
 		${PATCH_WRKSRC}/setup.py
 .endif
+# Fix for http://bugs.python.org/issue12852 (especially on 10.x+);
+# not needed for python33+
+	${REINPLACE_CMD} -e 's|_XOPEN_SOURCE 600|_XOPEN_SOURCE 700|' \
+		${PATCH_WRKSRC}/configure
 
 post-configure:
 	${TAR} -C ${WRKSRC} -cf - . | ${TAR} -C ${SHARED_WRKSRC} -xf -
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 3 Marcus von Appen freebsd_committer freebsd_triage 2013-11-30 10:49:24 UTC
State Changed
From-To: open->closed

A fix has been committed. Thanks!