Poudriere / makefile / python3 sqlite3 dependency

Phil Pennock freebsd-questions+phil at spodhuis.org
Sun Nov 8 21:16:42 UTC 2015


Folks,

How do I declare a dependency upon py34-sqlite3 in a Ports Makefile,
please?  In an environment where py27 is the default.

More context: Poudriere builds, ports tree overlay of meta-ports using
RUN_DEPENDS, `jail-foo` meta-port for installing in jail `foo` to pull
in all software dependencies.  This setup has been working fine for the
past couple of years.

Mail-server port, pulls in mailman (so needs python2) and I want to
use some python3 scripts I wrote a while back but didn't get around to
enabling before now.  python3 is installed, no problem.  sqlite3, split
out from the main Python build, I have failed to persuade to build as
Python3.4.

With either of these, I can get as far as the error below:

  RUN_DEPENDS+= py34-sqlite3>0:${PORTSDIR}/databases/py-sqlite3

  USES= python:3
  RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3

error in Poudriere output:
  ===>   spodhuis-jail-hermes-20151108_1 depends on package: py34-sqlite3>0 - not found
  ===>   spodhuis-jail-hermes-20151108_1 depends on package: /packages/All/py27-sqlite3-3.4.3_6.txz - not found
  ===>   dp_USE_PACKAGE_DEPENDS_ONLY set - not building missing dependency from source

I haven't yet seen a method of using the `:target` part of a RUN_DEPENDS
specification to influence which version of Python should be used by the
depended-upon port, rather than the depending port.  I've tried a number
of other approaches, all of which have so far failed.

What _should_ I be doing to build this port automatically, so that I can
keep up-to-date with Poudriere builds, please?

Thanks,
-Phil


More information about the freebsd-questions mailing list