[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