[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