[Debian GNUstep maintainers] Bug#583840: Bug in packaging gnustep-make: configured as architecture-dependant but packaged as architecture-all

Michael Werle micha at michaelwerle.com
Mon May 31 00:32:49 UTC 2010


Package:	gnustep-make
Version:	lenny onwards (>= 2.0.6-2)

The bug is not actually in the package; rather it is in the way Debian
has been packaging it from 'lenny' onwards.  

In 'etch', this package was architecture-dependent.  From 'lenny'
onwards it is architecture-all.

This affects the included file 'config-noarch.make' which should be
architecture-dependent as it overrides various GNUSTEP_HOST_* variables,
including GNUSTEP_HOST_CPU, during 'make'.

On a 32-bit system, this problem is masked.  On a 64-bit system,
however, the _HOST and _HOST_CPU variables are incorrect:
GNUSTEP_HOST_CPU=ix86
GNUSTEP_HOST=i486-pc-linux-gnu

Note that the GNUstep environment variables in the shell are correct:
GNUSTEP_HOST=x86_64-pc-linux-gnu
GNUSTEP_HOST_CPU=x86_64


I exchanged an email asking for clarification with the upstream
maintainer of gnustep-make; please find it attached.

His assumption is that Ubuntu/Debian are configuring gnustep-make with
'--disable-multi-platform', which turns the package into a
platform-dependent version of itself.  It would need to be configured
with '--enable-multi-platform' instead in order to be
platform-independent.

Many thanks,
 - Micha.
-------------- next part --------------
From nicola.XXX at XXX.com Sun May 30 22:23:00 2010
Return-path: <nicola.XXX at XXX.com>
Envelope-to: micha at michaelwerle.com
Delivery-date: Sun, 30 May 2010 22:23:01 +0100


The reason your GNUSTEP_HOST_* settings are ignored is that gnustep- 
make was configured with --disable-multi-platform,
which (for speed) assumes that GNUSTEP_HOST_* is the one used when  
gnustep-make was configured.

If you want to be able to override GNUSTEP_HOST_* (or have it  
determined at runtime) you have to configure gnustep-make with

./configure --enable-multi-platform

Now, having said that, as you say it sounds like Ubuntu is shipping  
gnustep-make as platform-independent while GNUSTEP_HOST_*
is actually platform dependent.  I imagine they maybe assume that  
nobody is actually using that variable ?

You have a few options ...

  1. talk to the Ubuntu/Debian packagers and explain ... it may take a  
while before they do new packages though

  2. manually change config-noarch.make after installing replacing the  
hardcoded CPU info with the one appropriate for the machine

  3. manually commenting out the lines setting GNUSTEP_HOST_* in  
config-noarch.make after installation (to basically --enable-multi- 
platform
manually)

  4. ignore GNUSTEP_HOST_* and use some variable of your own.  Set  
your own shell variable in /etc/profile (either using "uname", or just  
hardcoded
on each machine) and use it.  Instead of using a shell variable, you  
can also set a makefile variable, for example by adding a makefile into
xxx/Makefiles/Additional/ (give it any name you want, eg, my- 
host.name) in which you set a variable, eg  
"MY_GNUSTEP_HOST_CPU=i386".  All
these makefiles are automatically included so your variable would  
always be set.

Let me know if this helps ? :-)

Thanks

On 30 May 2010, at 18:32, Michael Werle wrote:

> Hi Nicola,
>
> I got your email address off bheron on #GNUstep. I hope you don't mind
> me contacting you directly.
>
> We have a GNUmakefile which uses the GNUSTEP_HOST_CPU environment
> variable to determine whether we are compiling for 32-bit (x86) or
> 64-bit (x86_64).  However, I've just noticed that this doesn't seem to
> be working under Ubuntu Lucid.
>
> In the environment, GNUSTEP_HOST_CPU is correctly set to 'x86_64' on  
> my
> 64-bit system, and to 'x86' on my 32-bit VM.  However,
> the /usr/share/GNUstep/Makefile/config-noarch.make file shipped with  
> the
> gnustep-make package overrides this value with 'ix86'.
>
> Is this by design?  I would expect the config-noarch.make file to only
> set the variable if it isn't set already.
>
>
> Furthermore, having built gnustep from sources, the config-noarch.make
> file contains the correct cpu info for my machine.  So perhaps this  
> is a
> packaging issue with Ubuntu as well, since they ship gnustep-make as  
> an
> architecture-independent package when this file, at least, should be
> architecture-dependent.
>
> Could you please shed some light on what the expected behaviour is?
>
> Many thanks,
> - Micha.




More information about the pkg-GNUstep-maintainers mailing list