graphics/py3-cairo cannot find Python.h, but Python.h is present

tech-lists tech-lists at zyxst.net
Sat Nov 26 16:41:21 UTC 2016


On 26/11/2016 13:59, Kubilay Kocak wrote:
> On 26/11/2016 9:11 PM, tech-lists wrote:
>> On 26/11/2016 03:48, Kubilay Kocak wrote:
>>> Include path  ^^ has a double '/storage/storage/' prefix:
>>>
>>>  '-I/storage/storage/usr/local/include/python3.5m'
>>>
>>> What's causing it is the question. It could be that something is not
>>> PREFIX-safe.
>>
>> Interesting. Is this something I can fix myself in the Makefile?
>
> Difficult to answer that question without knowing what/where the cause
> is. Off the top of my head, some avenues to investigate:
>
> - /etc/make.conf (or any other config sourced into the port build)
> - the graphics/py3-cairo port
> - Any USES=foo framework components that py3-cairo uses
> - waf configuration for py3-cairo
> - python3.5-config results
> - if python3.5-config results contain the incorrect path, then the
> lang/python35 port or Mk/Uses/python.mk looking for things that may be
> PREFIX-unsafe.
>
> Which raises the question, what variable(s) is/are being overridden to
> get things happening  in /storage in your environment? A full
> environment variable list while building the port would be good.

Hi,

/storage is a zpool.

/usr/local is a symlink of /storage/usr/local

OK, here is the output from env:

# env
TERM=xterm-256color
BLOCKSIZE=K
MAIL=/var/mail/root
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
SHELL=/bin/csh
HOME=/root
USER=root
HOSTTYPE=FreeBSD
VENDOR=amd
OSTYPE=FreeBSD
MACHTYPE=x86_64
SHLVL=1
PWD=/usr/ports/graphics/py3-cairo
LOGNAME=root
GROUP=wheel
HOST=pumpkin.growveg.org
EDITOR=vi
PAGER=more

Here is /etc/make.conf:

MALLOC_PRODUCTION=yes
MAKE_JOBS_NUMBER=18
WITH_MANCOMPRESS=YES
WITHOUT_DEBUG=YES
DEFAULT_VERSIONS+=  ssl=libressl
OPTIMIZED_CFLAGS=YES
BUILD_OPTIMIZED=YES
NO_SENDMAIL=true

python3-config:

# python3.5-config --prefix
/storage/usr/local

#

I don't know what waf is or how it works. It's referenced in the 
makefile, as is reference to USES=

Here's the makefile:

# Created by: Michael Johnson <ahze at FreeBSD.org>
# $FreeBSD: head/graphics/py3-cairo/Makefile 401900 2015-11-18 22:13:53Z 
rm $
#       $MCom: ports/graphics/py-cairo/Makefile,v 1.28 2010/11/15 
14:12:13 kwm Exp $

PORTNAME=       cairo
PORTVERSION=    1.10.0
PORTREVISION=   3
CATEGORIES=     graphics python
MASTER_SITES=   http://cairographics.org/releases/
PKGNAMEPREFIX=  ${PYTHON_PKGNAMEPREFIX}
DISTNAME=       py${PORTNAME}-${PORTVERSION}

MAINTAINER=     gnome at FreeBSD.org
COMMENT=        Python 3 bindings for Cairo

USES=           pkgconfig python:3 shebangfix tar:bzip2 waf
USE_GNOME=      cairo
CPPFLAGS+=      -I${LOCALBASE}/include
LDFLAGS+=       -L${LOCALBASE}/lib

SHEBANG_FILES=  examples/*.py examples/*/*.py test/*.py

.include <bsd.port.pre.mk>

.if ${PYTHON_REL} < 3500
PYOEXTENSION=   pyo
.else
PYOEXTENSION=   opt-1.pyc
.endif

PLIST_SUB+=     PYTVER=${PYTHON_VER:S/.//} \
                 PYOEXTENSION=${PYOEXTENSION}

post-patch:
         @${REINPLACE_CMD} -e 's|python %s|${PYTHON_CMD} %s|g' \
                 ${WRKSRC}/test/examples_test.py

pre-configure:
# Run waf configure twice, once to extract waflib and patch and then 
actual configure
         @cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${CONFIGURE_CMD} || :
         @cd ${WRKSRC}/.waf3-1.6.4-e3c1e08604b18a10567cfcd2d02eb6e6/ && \
                 ${PATCH} -p1 < 
${FILESDIR}/pycairo-1.10.0-waf-py3_4.patch && \
                 ${PATCH} -p1 < ${FILESDIR}/pycairo-1.10.0-waf-py3_5.patch

post-install:
         @${RM} ${STAGEDIR}${PYTHON_SITELIBDIR}/cairo/__init__.py[co]
         @cd ${STAGEDIR}${PREFIX} && ${PYTHON_CMD} 
${PYTHON_LIBDIR}/compileall.py \
                 -d ${PYTHONPREFIX_SITELIBDIR} -f 
${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;}
         @cd ${STAGEDIR}${PREFIX} && ${PYTHON_CMD} -O 
${PYTHON_LIBDIR}/compileall.py \
                 -d ${PYTHONPREFIX_SITELIBDIR} -f 
${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;}
         @${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/cairo/_cairo.so

.include <bsd.port.post.mk>

many thanks,
-- 
J.


More information about the freebsd-ports mailing list