On 2024-12-28 17:56, Mark Geisert via Cygwin-apps wrote:
Hi Brian,
On Sat, 28 Dec 2024, Brian Inglis via Cygwin-apps wrote:
Hi folks,
Packaging bash-completion I noticed during cygport pkg running
pkg_info:__list_deps() (I think) produces the error message:
xargs: cannot fit single argument within argument list size limit
but does not stop the build or affect the results as far as I can see.
The scallywag noarch build log for 9116 showing the error message is:
https://github.com/cygwin/scallywag/actions/runs/12529311037/job/34944818784
I have attached the cygport --debug pkg.log as I can not spot which arg is
causing xargs to fail when trying to find requires for bash-completion binary
subpackage.
Hopefully if someone else has some time over the holidays they can see what I
have failed to narrow in on.
I copy/pasted the pkg.log into a temp file and took a look with vim.
(I assume Firefox is not truncating the lines...)
Starting at the line with the "xargs:" error I backed up a few lines.
The line starting with "echo" is 58029 chars long. It has many many duplicate
strings in it, FWIW.
The line starting with "xargs" is 28836 chars long. It, too, has many many
duplicate arg strings in it, though they do start with '^' and end with '$' as
reasonable for -e arg strings.
I'm not enough of a shell debugging guy to know which line-expressions are pipe
starters or pipe members, so that's as far as I can go.
Thanks Mark,
That's where I'm at too - but there are sort -u commands which should eliminate
the duplicates!?
In your follow up, that arg size is probably for your system, given your
environment space. I think the Cygwin value may be 32kB arg len limit for exec:
$ xargs -rt --show-limits <<< ''
Your environment variables take up 8282 bytes
POSIX upper limit on argument length (this system): 21670
POSIX smallest allowable upper limit on argument length (all systems): 4096
Maximum length of command we could actually use: 13388
Size of command buffer we are actually using: 21670
Maximum parallelism (--max-procs must be no greater): 2147483647
$ bc <<< 13388+8282
21670
$ bc <<< 21670+8282+2048
32000
as the man page says there is 2KB headroom plus the env; and the value defaults
to at most 128KB, even if more is available, although you could then specify an
explicit larger value.
As usual with GNU packages, the man page says full details are available in the
info pages, but those details are not included in the latter.
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut
-- Antoine de Saint-Exupéry