Staging, poudriere and PYTHON_SITELIBDIR => package won't build

Michael Gmelin freebsd at
Mon Dec 2 00:12:53 UTC 2013

On Sun, 1 Dec 2013 21:16:17 +0100
Michael Gmelin <freebsd at> wrote:

> I'm in the process of converting a port to staging, it works ok when
> run in my normal environment, but when run using poudriere testport
> the package step falls apart (staging is all ok, without violations),
> e.g.
> pkg-static:lstat(/wrkdirs/usr/ports/devel/py-ice/work/stage/prefix/py27-Ice-3.5.1/lib/python2.7/site-packages/Ice.pth):
> No such file or directory
> Corresponding entry in pkg-plist:
> The actual file is in:
> /wrkdirs/usr/ports/devel/py-ice/work/stage/usr/local/lib/python2.7/site-packages/Ice.pth
> Which makes sense, since the port installs it (and all its other
> files) there:
>         ${ECHO} "Ice" > ${STAGEDIR}${PYTHON_SITELIBDIR}/Ice.pth
> The port installs a lot more files of course.
> Is this a general problem when PREFIX != LOCALBASE for python ports?
> Using poudriere testport -n it works as expected.
> Thanks,
> Michael

To answer my own question:
This also happened without poudriere and PREFIX != LOCALBASE and
staging enabled.

I worked around the issue by putting this into Makefile

.if ${PREFIX} != ${LOCALBASE} && !defined(NO_STAGE)

and replacing ${PYTHON_SITELIBDIR} with ${PYSITEDIR}, e.g.

        ${ECHO} "Ice" > ${STAGEDIR}${PYSITEDIR}/Ice.pth

Michael Gmelin

More information about the freebsd-ports mailing list