On 2020/07/27 23:11, Kubilay Kocak wrote: > On 28/07/2020 12:29 pm, John W. O'Brien wrote: >> On 2020/07/27 22:08, Kubilay Kocak wrote: >>> On 28/07/2020 5:43 am, John W. O'Brien wrote: >>>> Greetings FreeBSD Python, >>>> >>>> I have been mulling over a thing and would like the list's perspective >>>> before I decide whether to take action or not. >>>> >>>> security/py-pycryptodome will use devel/py-cffi if it is available [0] >>>> or ctypes otherwise [1]. This makes me just a little bit uneasy >>>> since it >>>> leaves the door open to certain Heisenbugs and red herrings. My >>>> question >>>> is whether it warrants adding devel/py-cffi to RUN_DEPENDS to ensure >>>> consistency behavior? If not, what about as an OPTION for those who >>>> care >>>> about that sort of thing? >>>> >>>> [0] >>>> https://github.com/Legrandin/pycryptodome/blob/v3.9.8/lib/Crypto/Util/_raw_api.py#L71-L161 >>>> >>>> >>>> [1] >>>> https://github.com/Legrandin/pycryptodome/blob/v3.9.8/lib/Crypto/Util/_raw_api.py#L163-L263 >>>> >>>> >>>> [2] https://en.wikipedia.org/wiki/Heisenbug >>>> >>> >>> The Python Policy section on optional dependencies should cover this: >>> >>> https://wiki.freebsd.org/Python/PortsPolicy#Optional_Dependencies >>> >>> tldr; >>> >>> For either at build or run-time optional dependencies (where the pattern >>> is, check if dep exists, use some code path if true, else use another >>> code path), add OPTIONS for them. >> >> OK, so something like this? >> >> OPTIONS_DEFINE=CFFI >> OPTIONS_DEFAULT=CFFI >> >> CFFI_DESC=Use devel/py-cffi for low-level API instead of ctypes >> CFFI_RUN_DEPENDS=${PYTHON_PKGNAMEPREFIX}cffi>=0:devel/py-cffi@${PY_FLAVOR} >> > > That's fine. If the option is related to performance, id clarify that in > the description. > >>> Re heisenbugs/etc, this is where support for running test suites in the >>> port are critical, let us know in #freebsd-python on freenode IRC if you >>> need help getting these hooked up >> >> I've been looking forward to the day when [3] lands. Is there some other >> way to run the test target in a poudriere build? > > Yes, that would be nice. The other way is to testport -i to enter the > jail, at which point you can run `make test` from the port dir
Is there any trick to ensuring that the TEST_DEPENDS have already been built, or are already installed in the jail, by that point? >> Of course, running test suites in the build environment wouldn't uncover >> bugs that are triggered by something that just happens to show up in the >> runtime environment. Enabling the OPTIONal things by default would >> clearly help. > > The same as ports defaulting OPTIONS to enabled to benefit package > users, python's optional dependency policy is to do the same, such that > the default port options are the ones that are tested. > > Maintainers can and should do more comprehensive testing by testing > various combinations of PTIONS > >> [3] https://github.com/freebsd/poudriere/pull/355 -- John W. O'Brien OpenPGP keys: 0x33C4D64B895DBF3B
signature.asc
Description: OpenPGP digital signature