This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author floppymaster
Recipients floppymaster
Date 2017-11-11.17:06:22
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1510419983.02.0.213398074469.issue32007@psf.upfronthosting.co.za>
In-reply-to
Content
The nis extension module fails to build against glibc-2.26 with the "obsolete-rpc" option disabled.

Downstream bug report: https://bugs.gentoo.org/631488

glibc-2.26 release notes: https://sourceware.org/ml/libc-alpha/2017-08/msg00010.html

The nis module is normally skipped since rpcsvc/yp_prot.h will not exist. However, if the external "libnsl" package is installed, compilation is attempted and fails as given below.

building 'nis' extension
x86_64-pc-linux-gnu-gcc -pthread -fPIC -Wno-unused-result -Wsign-compare -DNDEBUG -march=native -O2 -pipe -g -fwrapv -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -I./Include -I. -I/var/tmp/portage/dev-lang/python-3.6.3/work/Python-3.6.3/Include -I/var/tmp/portage/dev-lang/python-3.6.3/work/Python-3.6.3 -c /var/tmp/portage/dev-lang/python-3.6.3/work/Python-3.6.3/Modules/nismodule.c -o build/temp.linux-x86_64-3.6/var/tmp/portage/dev-lang/python-3.6.3/work/Python-3.6.3/Modules/nismodule.o
/var/tmp/portage/dev-lang/python-3.6.3/work/Python-3.6.3/Modules/nismodule.c:17:21: fatal error: rpc/rpc.h: No such file or directory
 #include <rpc/rpc.h>
                     ^
compilation terminated.

To summarize:

glibc no longer provides rpc/rpc.h or rpcsvc/yp_prot.h. One must install a couple of external libraries to provide the same functionality.

The missing rpcsvc/yp_prot.h file can be resolved by installing the "libnsl" package, which installs the header where setup.py expects to find it.

The missing rpc/rpc.h file may be provided by the "libtirpc" package, but this installs the file under /usr/include/tirpc, which must be added to the include path (-I/usr/include/tirpc).

Ideally, pkg-config would be used to find both libnsl and libtirpc.
History
Date User Action Args
2017-11-11 17:06:23floppymastersetrecipients: + floppymaster
2017-11-11 17:06:23floppymastersetmessageid: <1510419983.02.0.213398074469.issue32007@psf.upfronthosting.co.za>
2017-11-11 17:06:22floppymasterlinkissue32007 messages
2017-11-11 17:06:22floppymastercreate