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