RFC: svn for make fetch
Thomas Sandford
freebsduser at paradisegreen.co.uk
Mon Nov 16 11:09:33 UTC 2009
Peter Jeremy wrote:
> On 2009-Nov-14 15:46:27 +0000, Thomas Sandford <freebsduser at paradisegreen.co.uk> wrote:
>> Wesley Shields wrote:
>>> Sure, but it doesn't belong in bsd.*.mk. Turn it into a script and
>>> submit it as a regular port.
>> ...
>> Surely the whole value/purpose of the ports build infrastructure is to
>> present a consistent way of doing things rather than different
>> maintainers doing their own thing and solving problems in different, and
>> quite possibly sub-optimal ways and/or bloating multiple individual port
>> Makefiles with what could be kept in a single bsd.*.mk file.
>
> If it affected several hundred ports and/or was visible to the end
> user then this might be justification for embedding it into bsd.*.mk.
>
> The ports build infrastructure is already quite large (>20K LOC) and
> difficult to follow. The overheads associated with loading bsd.*.mk
> files also makes operations like "make index" very time-consuming.
> IMHO, bloating it further to marginally simplify life for the
> maintainers of ~15 ports is not a good tradeoff.
>
> Wesley's suggestion above sounds like the best solution.
>
>> And if the file were (say) bsd.vcs.mk and were pulled in only if one of
>>
>> USE_SVNFETCH
>> USE_CVSFETCH
>> USE_GITFETCH
>>
>> etc were defined then the impact of the bloat on other ports is minimal.
>
> If you still want to go this way, I'd suggest writing a stand-alone
> bsd.vcs.mk that can be .include'd by the port when it needs the
> functionality.
Personally I think the performance difference between
.ifdef USE_SVNFETCH
.include "${PORTSDIR}/Mk/bsd.vcs.mk"
.endif
in bsd.port.mk
and only explicitly including it in the ports that use it is marginal,
but I could certainly live with this as a compromise.
--
Thomas Sandford
More information about the freebsd-ports
mailing list