On 10/29/23 21:39, Tatsuki Makino wrote:
Daniel Engberg wrote on 2023/10/28 17:48:
If upstream uses GNU Autotools, use upstream release archives as they
usually contains a configure script ready to run which means that you
can avoid USES= autoreconf which is slow and adds unncessary
dependencies.

This has the following problem

Apply patches to {configure.ac,Makefile.am} and run autoreconf
   versus
Apply patches to {configure,Makefile.in} and run ./configure immediately

Incidentally, some ports (e.g. security/heimdal*) do not know which it is.

I agree that some ports use autoreconf out of need instead of just want. By the time a 'download release archive' step just to get files to skip autoreconf is used, the release file should be used start to finish. Some ports benefit from following nonrelease versions while some projects have not released a release version that can be used. I thought there was a way to get performance improvements by creating a config.h before the tools are ran which will skip some checks when it contains values of some of those checks. It can be handy to avoid certain redundant tests; my machine will not change between big and little endian anytime soon, nor will my FreeBSD install become Linux or OSX anytime soon. If a port depends on another port, some values will always be populated by that dependency. Trying to autopopulate such data becomes harder when considering multiple versions due to dependency choices, mixing packages from different ports tree versions, and customized tests.

If dependencies are unbundled you can save I/O and processing time by
not extracting.

Example:
https://cgit.freebsd.org/ports/tree/net-mgmt/netdata/Makefile#n32

With -X (or --exclude-from) of tar, a list of unwanted files can be made into a 
file.
If the file is subject to SUB_FILES, the options also allow selection of 
unnecessary files.
... I have thought about this for a moment.
It was impossible because the timing when SUB_FILES is extracted is much later 
than when it is possible to do so.

Thought there was a way but wasn't finding it in the handbook so thank you. Mk/bsd.port.mk had that and similar variables noted. Now I was able to add a string of exclusions to a port I was working on which brings its own bundled copies of many things where before I was using an {RM} in "post-extract:' section, though I guess that particular work only matters if I succeed at porting that program which I got stuck on. It would be nice if this was documented in the porter's handbook. It could also serve additional benefit when options are changed for some ports but would become much harder to determine when appropriate if not familiar with the whole program + its build system. An overlooked area of easy possible gain would be not extracting documents when DOC (minor benefit) and NLS (major benefit for some) options are not enabled. Any idea if extraction speed is increased if skipping content? I know 7-zip in Windows skips blocks of archives entirely when there is no requested data remaining in each block.

Reply via email to