On Sep 20, 2021, at 10:20 AM, Daniel J. Luke <[email protected]> wrote:
> On Sep 20, 2021, at 8:15 AM, Frank Dean <[email protected]> wrote:
>> Daniel J. Luke <[email protected]> writes:
>>> The newest version of clamav uses cmake for builds. In the 'configure' 
>>> stage, I have it disabling tests because otherwise it won't build without 
>>> the test dependencies installed (check and pytest). 
>>> 
>>> Do we have a template or example of a canonical way to handle this? I don't 
>>> see an obvious hook for when someone is running `port test` to change 
>>> configure.args (I could, of course, add a post-extract/pre-configure and do 
>>> some non-declaritive test to see if `port test` is being run and use that 
>>> to branch - but that feels like a bad design choice).
>> 
>> The rapidjson port implements a 'tests' variant to handle a similar
>> situation.  I used the same pattern for the libosmium port.  The tests
>> can then be run with `sudo port -d test current +tests`.
> 
> That works, I guess.
> 
> Is there interest in having base auto-add +tests if `port test` is called? (I 
> haven't looked at base/ code in a while, but it seems possible). I like to 
> imagine a future where we have enough infrastructure that we would run `port 
> test` for any ports that have test.run set.

On this same train of thought - clamav tests run against the installed 
libraries (like some other ports tend to do) - in long-ago times I'd solve this 
by setting DYLD_LIBRARY_PATH - but since SIP started removing these that no 
longer works normally. I think trace mode has a(n elaborate) workaround where 
it copies binaries and executes the copies, but that doesn't seem like 
something I should implement in a portfile ;-) [This is another instance where 
if trace mode were the default, things would 'just work']

Has anyone else already solved this?

-- 
Daniel J. Luke

Reply via email to