Page MenuHomeFreeBSD

Possible Makefile simplifications after the commit of D31151
Needs ReviewPublic

Authored by se on Jul 26 2021, 11:17 AM.

Details

Summary

This review is meant to support the patch suggested in D31151 - it is not meant to be committed as included!
Individual maintainers can apply the simplifications to their ports whenever it pleases them (D31151 is a NOP on its own).
I just wanted to outline the range of ports that can take advantage of D31151 and provide example patches to support the individual maintainers.

I have added affected port maintainers that I could identify to this PR. I have prepared individual patches per maintainer (that I'd be happy to send by private mail) but did not want to open one review per maintainer and chose to go for this combined (not to be committed review) instead.

The introduction of FLAVORs required CONFLICTS entries for all except the selected FLAVOR to be added to the ports' Makefiles.
This lead to complexity and added effort to create and maintain those Makefiles.
Differential https://reviews.freebsd.org/D31151 proposed changes to the conflicts checks in bsd.port.mk to ignore the FLAVOR being built.
This allows to simplify the Makefiles, since a single CONFLICTS definition can now cover all FLAVORs.
The actual build conditions do not change, since the exclusion of the FLAVOR being built from the CONFLICTS definitions by the port's maintainer is just moved to the conflicts check logic.
This review contains some 50 Makefiles that could be simplified after D31151 has been committed.
These changes are not required - if a maintainer decides to keep the conflicts for each FLAVOR explicit the patch in D31151 is never triggered.
But the patch for devel/git shows that the Makefile can be significantly simplified (the patch for DESCR is unrelated and could also be applied to other FLAVORed ports - I forgot to remove it).
Another port that has a similarly complex CONFLICTS definition due to multiple FLAVORs is the proposed FLAVOR update of mail/postfix (see PR ports/255809).

Test Plan

Apply patch from D31151 and the individual patches in this review and verify that the CONFLICTS checks work as before, without the need for per FLAVOR CONFLICTS definitions.

Diff Detail

Repository
R11 FreeBSD ports repository
Lint
Lint Skipped
Unit
Unit Tests Skipped

Event Timeline

se requested review of this revision.Jul 26 2021, 11:17 AM
se created this revision.
se added a parent revision: D31151: Simplify CONFLICTS definitions.
benchmarks/vkmark/Makefile
18

Looks unrelated to CONFLICTS and is already part of D30792

graphics/vulkan-caps-viewer/Makefile
10

Looks unrelated to CONFLICTS and is already part of D30792

graphics/vulkan-tools/Makefile
13

Looks unrelated to CONFLICTS and is already part of D30792

benchmarks/vkmark/Makefile
18

Looks unrelated to CONFLICTS and is already part of D30792

Yes, sorry, I had prepared a diff over all locally modified port Makefiles and thought that I had managed to remove all chunks that were for other suggested changes - and apparently missed those 3 chunks that were part of the libvulkan.so.1 dependency patch in D30792.

I do not want to update the diff in this review at this time since it is not meant to be committed (at least not by me, except for ports that have no maintainer).