Created attachment 186455 [details] synth build log of mail/postfix-policyd-spf-python About 2 months ago I submitted update of mail/postfix-policyd-spf-python as bug #220706. But it was hold off because of known issue of poudriere. That is, while 'cd /usr/ports/mail/postfix-policyd-spf-python && make install' works fine without any errors, 'poudriere testport -o mail/postfix-policyd-spf-python' fails due to the issue reported in bug #206067. This is an introduction of this PR. And today I wonder if synth can build my update. So I installed synth, configured it and tried 'synth test mail/postfix-policyd-spf-python'. But it failed as following: root@rolling-vm-freebsd1[1646]# synth test mail/postfix-policyd-spf-python Stand by, building pkg(8) first ... done! The task is complete. Final tally: Initial queue size: 15 packages built: 14 ignored: 0 skipped: 0 failed: 1 Duration: 00:05:00 The build logs can be found at: /usr0/synth/NoCustomization/log root@rolling-vm-freebsd1[1647]# By checking build log of mail/postfix-policyd-spf-python (it is attached to this PR) and listing built packages in repository directory, I am convinced that syth has same issue as poudriere. That is. 1. mail/postfix-policyd-spf-python has run-time dependency on mail/py-pyspf and mail/py-authres. So synth also build these ports. 2. mail/postfix-policyd-spf-python is Python 3 only ports (USES=python:3.3+). So synth build it as package for default Python 3 version, that is, 3.6. 3. Since mail/postfix-policyd-spf-python is built as Python 3.6 package, depending ports (mail/py-pyspf, maii/py-authres and there dependencies) also have to be built as Python 3.6 packages. 4. But mail/py-pyspf, mail/py-authres and etc themselves are compatible with all supported Python versions (USE=python). So synth build them as package for default Python version, that is, 2.7. 5. So when synth completed build of all dependencies and start building mail/postfix-policyd-spf-python, there are no required Python 3.6 packages in repository, and it results in build failure. After all it seems the root of this issue is that synth builds depending ports as if they were master one. So in order to fix this issue synth must be changed so requirements of master port are inherited to build of dependencies in some way.
How poudriere fixes same issue is discussed in following URL. https://github.com/freebsd/poudriere/issues/259 It may help synth to fix this issue. Just FYI.
Upstream author said he didn't intend to fix this problem. https://github.com/jrmarino/synth/issues/96#issuecomment-330307815