Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building

2007-11-25 Thread Loïc Minier
On Sat, Nov 24, 2007, Neil Williams wrote:
 ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
 DEB_MAKE_ENVVARS=CC=$(DEB_HOST_GNU_TYPE)-gcc
 endif

 Why set CC in cdbs instead of setting it in the cross build env?

-- 
Loïc Minier




Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building

2007-11-25 Thread Neil Williams
Loïc Minier wrote:
 On Sat, Nov 24, 2007, Neil Williams wrote:
 ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
 DEB_MAKE_ENVVARS=CC=$(DEB_HOST_GNU_TYPE)-gcc
 endif
 
  Why set CC in cdbs instead of setting it in the cross build env?

Please read the rest of the bug report, CC was set in the cross build
environment before the cross build support was rewritten. The rewrite
was done because if CC *is* set in the environment, it prevents
CC_FOR_BUILD from operating and therefore packages that need to build
tools during the cross build fail to build - like libx11.

The rewritten cross building support now allows all packages to cross
build successfully.

This change in CDBS is because the same change is needed in *all* CDBS
packages that use a makefile without a ./configure and I would rather
fix the problem in CDBS than have to apply precisely the same patch to
each package in this situation.

Therefore, CC must NOT be set by the cross build environment because CC
will break more packages than it fixes. Those CDBS packages that use
only a Makefile without ./configure, there is no way of passing the
correct CC from the cross build environment - it needs to come from CDBS.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/




signature.asc
Description: OpenPGP digital signature


Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building

2007-11-07 Thread Peter Eisentraut
Neil Williams wrote:
 No. MAKEFLAGS should not be overwritten by the build tools.

Huh?  This discussion is about DEB_CONFIGURE_SCRIPT_ENV.  How do you get 
from that to MAKEFLAGS?  AFAICS, nothing in cdbs touches MAKEFLAGS.

 CDBS has no business setting DEB_CONFIGURE_SCRIPT_ENV.

 Any package that needs it is simply broken because there is no way
 of providing useful information by that method.

Explain that to all the packages that are making use of it.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building

2007-11-07 Thread Peter Eisentraut
Neil Williams wrote:
 Actually, packages fail to cross compile with it set because CDBS
 sets 'gcc'

It does no such thing.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building

2007-11-07 Thread Peter Eisentraut
Am Mittwoch, 7. November 2007 schrieb Neil Williams:
 It is only when cross-compiling and all those packages need to be fixed
 anyway because the cross compiling support no longer provides anything
 useful for CDBS to pass to this variable.

But there are many other situations in which useful things are passed around 
that way, which packages need in order to build properly.

 Please check the patch - it only sets DEB_CONFIGURE_SCRIPT_ENV to empty
 when cross-compiling.

Thus making the affected packages fail to build properly when cross-compiling, 
which appears to be contrary to your intentions.

Which part of the contents of DEB_CONFIGURE_SCRIPT_ENV are you objecting to, 
specifically?



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building

2007-11-07 Thread Neil Williams
On Wed, 7 Nov 2007 16:14:13 +0100
Peter Eisentraut [EMAIL PROTECTED] wrote:

 Am Mittwoch, 7. November 2007 schrieb Neil Williams:
  Please can DEB_CONFIGURE_SCRIPT_ENV be set to empty in CDBS so that CDBS
  packages can be cross-built successfully?
 
 Um, well, no, because this would break all packages that rely on the settings 
 of the environment variables that are transported this way.
 
It is only when cross-compiling and all those packages need to be fixed
anyway because the cross compiling support no longer provides anything
useful for CDBS to pass to this variable.

Please check the patch - it only sets DEB_CONFIGURE_SCRIPT_ENV to empty
when cross-compiling.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/



pgpJB5qzdsUAP.pgp
Description: PGP signature


Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building

2007-11-07 Thread Peter Eisentraut
Am Mittwoch, 7. November 2007 schrieb Neil Williams:
 Please can DEB_CONFIGURE_SCRIPT_ENV be set to empty in CDBS so that CDBS
 packages can be cross-built successfully?

Um, well, no, because this would break all packages that rely on the settings 
of the environment variables that are transported this way.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building

2007-11-07 Thread Neil Williams
On Wed, 7 Nov 2007 19:07:28 +0100
Peter Eisentraut [EMAIL PROTECTED] wrote:

Forgot to CC the bug report.

 Neil Williams wrote:
  No. MAKEFLAGS should not be overwritten by the build tools.
 
 Huh?  This discussion is about DEB_CONFIGURE_SCRIPT_ENV.  How do you get 
 from that to MAKEFLAGS?  AFAICS, nothing in cdbs touches MAKEFLAGS.

Setting CC= overrides MAKEFLAGS, that is why this needs to be removed.

I need CDBS to NOT set CC - that is the sum of it.

  CDBS has no business setting DEB_CONFIGURE_SCRIPT_ENV.
 
  Any package that needs it is simply broken because there is no way
  of providing useful information by that method.
 
 Explain that to all the packages that are making use of it.

I will - because it only matters in cross-builds (because that is how I
have framed the patch) and the cross build tools explain why this is so
and what needs to be done. In the case of CDBS, if this patch is
implemented, nothing needs to be done.


-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/




pgpBZkwR3XnJQ.pgp
Description: PGP signature


Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building

2007-11-07 Thread Neil Williams
On Wed, 7 Nov 2007 19:09:01 +0100
Peter Eisentraut [EMAIL PROTECTED] wrote:

Forgot to keep the bug report in CC. Sorry.

 Neil Williams wrote:
  Actually, packages fail to cross compile with it set because CDBS
  sets 'gcc'
 
 It does no such thing.

It does - CC=gcc

The effect of DEB_CONFIGURE_SCRIPT_ENV is that the package tries to
cross build using gcc which simply breaks.

Unset DEB_CONFIGURE_SCRIPT_ENV for the crossbuild and gcc gets the
value from --host and works fine.

This is ONLY relevant for cross building and cross building support has
been entirely rewritten recently. The main change was to stop passing
CC to all packages so that certain packages could get a sensible
setting for CC_FOR_BUILD. The $(CC) setting should come from --host, NOT
from DEB_CONFIGURE_SCRIPT_ENV.

Unset DEB_CONFIGURE_SCRIPT_ENV and the cross build gets $(CC) from --host
as it should.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/




pgpWgoUvROo7d.pgp
Description: PGP signature


Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building

2007-11-07 Thread Neil Williams
On Wed, 7 Nov 2007 17:53:38 +0100
Peter Eisentraut [EMAIL PROTECTED] wrote:

 Am Mittwoch, 7. November 2007 schrieb Neil Williams:
  It is only when cross-compiling and all those packages need to be fixed
  anyway because the cross compiling support no longer provides anything
  useful for CDBS to pass to this variable.
 
 But there are many other situations in which useful things are passed around 
 that way, which packages need in order to build properly.

No. MAKEFLAGS should not be overwritten by the build tools. *packages*
may need MAKEFLAGS and the package should ensure that MAKEFLAGS is
suitably set. The build tools cannot take over MAKEFLAGS and set it in
a generalised manner. Keep it package specific.

You appear to be confused here because CDBS IS clobbering MAKEFLAGS and
yet you're saying that packages need it - yet CDBS tramples all over it!
 
Let the packages set the environment and everything is good.

Please note: I have rewritten the cross building support in Debian
(about 75% of it) and I specifically *removed* these overrides because
they break packages in a way that cannot be overridden.

  Please check the patch - it only sets DEB_CONFIGURE_SCRIPT_ENV to empty
  when cross-compiling.
 
 Thus making the affected packages fail to build properly when 
 cross-compiling, 

Actually, packages fail to cross compile with it set because CDBS sets
'gcc' when I need to set arm-linux-gnu-gcc etc. That is set by
dpkg-architecture and debian/rules but CDBS goes and tramples all over
it.

When CDBS sets CC=gcc I cannot unset or override that anymore because
the cross compiling tools (like CDBS) must *NOT* override it or things
like CC_FOR_BUILD will fail.

That's where this whole thing started: libx11
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=425445

 which appears to be contrary to your intentions.
 
 Which part of the contents of DEB_CONFIGURE_SCRIPT_ENV are you objecting to, 
 specifically?

All of it.

CDBS has no business setting DEB_CONFIGURE_SCRIPT_ENV.

Any package that needs it is simply broken because there is no way of
providing useful information by that method.

CDBS already sets DEB_HOST_GNU_TYPE when specified by dpkg-architecture
- as set by the cross build itself - but then DEB_CONFIGURE_SCRIPT_ENV
goes and CLOBBERS IT!

Only if DEB_CONFIGURE_SCRIPT_ENV is empty can DEB_HOST_GNU_TYPE
actually get passed on to the package build.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/



pgpvhm0u8hQ8a.pgp
Description: PGP signature