PKG_NG: pkg deinstall fails with "argument list too long"
bapt at FreeBSD.org
Tue Aug 28 10:12:12 UTC 2012
On Tue, Aug 28, 2012 at 11:14:55AM +0200, Stefan Esser wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> Am 27.08.2012 23:23, schrieb Baptiste Daroussin:
> > On Mon, Aug 27, 2012 at 10:22:27PM +0200, olli hauer wrote:
> Please do not hijack this thread, even if you are also reporting a
> problem with PKG_NG. Threads are free and nobody bothered to reply
> to the more urgent problem of the failed deinstallation.
> >> On 2012-08-27 20:03, Stefan Esser wrote:
> >>> PKG_NG seems to have introduced a limit on the size of ports
> >>> that can be deinstalled:
> >>> # cd /usr/ports/math/lapack # make deinstall ===>
> >>> Deinstalling for math/lapack ===> Deinstalling
> >>> lapack-3.4.0_2 The following packages will be deinstalled:
> >>> lapack-3.4.0_2
> >>> The deinstallation will free 28 MB Deinstalling
> >>> lapack-3.4.0_2...lapack-3.4.0_2 is required by: qrupdate-1.1.1,
> >>> deleting anyway pkg: Cannot run script(DEINSTALL): Argument
> >>> list too long *** [deinstall] Error code 3
> I have located the line that is causing this error. It is the
> posix_spawn on line 102 of libpkg/script.c. The argument length
> is limited to KERN_ARGMAX (sysctl kern.argmax) which seems to
> be a R/O value initialized to 256KB.
> AFAICT this is not even a loader tuneable. A new kernel must
> be built, or pkg must be modified to honor the argument length
> The argument is the string argument of "sh -c <string>", which
> can not be split in the general case.
> In the specific case of math/lapack, the arguments to execve()
> (called by posix_spawn()) are:
> argv = "sh"
> argv = "-c"
> argv = " set -- lapack-3.4.0_2
> rm -f /usr/local/man/cat3/INSTALL_ilaver.f.3.gz ...
> The argument list must be broken into pieces of less than 256KB,
> since rising KERN_ARGMAX to >330KB will lead to the same problem
> with the next port with even longer PLIST.
Thank you very much, this is already known and being worked on.
btw the cat3 lines in plist do not longer exists in the ports tree, I removed
this ugly thing a while ago now.
what will be done is keeping the currently behaviours if the script allows it,
and switch to the slower sh -s whan the script is longer.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20120828/11054d4e/attachment.pgp
More information about the freebsd-ports