[Debian GNUstep maintainers] Bug#593898: gnustep-back-common: Fails to upgrade in postinst script
Yavor Doganov
yavor at gnu.org
Tue Aug 24 06:31:00 UTC 2010
В 00:41 +0200 на 24.08.2010 (вт), Axel Beckert написа:
> > This happens because mknfonts processes one font file at a time, so
> > DejaVuSans.nfont/FontInfo.plist ends up with one key instead of 9.
>
> So using xargs wouldn't help either. Hmmm.
No :/
> Well, IMHO this is a bug in mknfonts or one of the libraries linked
> into it, because it definitely must not segfault on too many arguments
> on the command-line.
Not a bug in mknfonts, as has been demonstrated by the test program.
The abort comes from gnustep-base's NSProcessInfo class. When
kvm_getargv returns NULL, which is what apparently happens with many
arguments, there is no way to proceed with the proper initialization.
The code appears correct to me.
> I'd expect that there is a way to safely determine the amount of
> possible commandline arguments and at least exit with an error message
> instead of segfaulting.
There is an error message, but we redirect it
to /var/log/gnustep-back-common.log... unfortunately without informing
the user about that file.
> Is there some way to "shift" the array of command line arguments as in
> /bin/sh where you IIRC have to use "shift" to be able to access
> parameters behind the 9th parameter (i.e. the non-existing "$10" after
> "$9")?
Not that I know of. At any rate, argc/argv manipulations/tricks in
mknfonts are doomed to fail; the +[NSProcessInfo load] class method is
called way too early so the program cannot react at all.
BTW, I noticed something curious while examining the build log on
kfreebsd-i386. All configure tests for /proc succeed, just like they do
on GNU/Linux. Is /proc guaranteed to be mounted? If so, it is perhaps
worth trying to build gnustep-base without libkvm. Configuring with
`./configure ac_cv_lib_kvm_kvm_getenvv=no' should do the job if you
don't want to uninstall libkvm-dev.
I'd be surprised if it builds, and even more surprised if it works.
More information about the pkg-GNUstep-maintainers
mailing list