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

Reply via email to