[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [MoM]: r9659 - trunk/packages/fis-gtm/fis-gtm/trunk/debian



On Wed, Feb 15, 2012 at 09:43:44AM -0500, Luis Ibanez wrote:
> Did you get this message as a result
> of running "debuild" ?

Actually pdebuild (because this ensures english error messages as a side
effect).
 
> I was working on the assumption that debuild goes
> through a sequence of
> 
> * configure
> * build
> * install

That's correct.
 
> and therefore, the extra files would have already
> been copied in the proper locations by the time
> we get to install.
> 
> Is that an incorrect assumption ?

Yes, perfectly correct and I have seen the "cp -a" statement.  Here is
a bit longer extract log extract:

------------------------------------------------------------
 dpkg-source --before-build fis-gtm-5.4-002B
dpkg-buildpackage: host architecture amd64
 fakeroot debian/rules clean
dh clean 
   dh_testdir
   dh_auto_clean
   debian/rules override_dh_clean
make[1]: Entering directory `/tmp/buildd/fis-gtm-5.4-002B'
dh_clean
tcsh ./fis-gtm-src-extras/setupenv.sh clean
----- Start the build -----
Linux Host 64
Linux Host linux x86_64 x86_regs
Source Directory List: sr_linux sr_x86_64 sr_x86_regs sr_unix_gnp sr_unix_cm sr_unix sr_port_cm sr_port
make[2]: Entering directory `/tmp/buildd/fis-gtm-5.4-002B'
rm -rf /tmp/buildd/fis-gtm-5.4-002B/pro
rm -f /tmp/buildd/fis-gtm-5.4-002B/*pro.tar.gz
rm -f idtemp ostemp
make[2]: Leaving directory `/tmp/buildd/fis-gtm-5.4-002B'
------ End of build -------
make[1]: Leaving directory `/tmp/buildd/fis-gtm-5.4-002B'
 dpkg-source -b fis-gtm-5.4-002B
dpkg-source: info: using source format `3.0 (quilt)'
dpkg-source: info: building fis-gtm using existing ./fis-gtm_5.4-002B.orig.tar.gz
dpkg-source: info: building fis-gtm in fis-gtm_5.4-002B-1.debian.tar.gz
dpkg-source: info: building fis-gtm in fis-gtm_5.4-002B-1.dsc
 debian/rules build
dh build 
   dh_testdir
   debian/rules override_dh_auto_configure
make[1]: Entering directory `/tmp/buildd/fis-gtm-5.4-002B'
cp -a ./fis-gtm-src-extras/* .
dh_auto_configure
make[1]: Leaving directory `/tmp/buildd/fis-gtm-5.4-002B'
   debian/rules override_dh_auto_build
make[1]: Entering directory `/tmp/buildd/fis-gtm-5.4-002B'
tcsh ./fis-gtm-src-extras/setupenv.sh
----- Start the build -----
Linux Host 64
Linux Host linux x86_64 x86_regs
Source Directory List: sr_linux sr_x86_64 sr_x86_regs sr_unix_gnp sr_unix_cm sr_unix sr_port_cm sr_port
make[2]: Entering directory `/tmp/buildd/fis-gtm-5.4-002B'
mkdir -p /tmp/buildd/fis-gtm-5.4-002B/pro/map
tcsh -f /tmp/buildd/fis-gtm-5.4-002B/sr_unix/gen_xfer_desc.csh sr_linux sr_x86_64 sr_x86_regs sr_unix_gnp sr_unix_cm sr_unix sr_port_cm sr_port
~/fis-gtm-5.4-002B ~/fis-gtm-5.4-002B/pro/obj 
~/fis-gtm-5.4-002B/pro/obj 
tcsh -f /tmp/buildd/fis-gtm-5.4-002B/sr_unix/gen_gtm_threadgbl_deftypes.csh /tmp/buildd/fis-gtm-5.4-002B sr_port pro/obj sr_linux sr_x86_64 sr_x86_regs sr_unix_gnp sr_unix_cm sr_unix sr_port_cm sr_port
Entering gen_gtm_threadgbl_deftypes.csh to build gtm_threadgbl_deftypes.h
~/fis-gtm-5.4-002B/pro/obj ~/fis-gtm-5.4-002B 
gen_gtm_threadgbl_deftypes.csh-E-: pro build link of /tmp/buildd/fis-gtm-5.4-002B/pro/obj/gtm_threadgbl_deftypes failed, see /tmp/buildd/fis-gtm-5.4-002B/pro/obj/gtm_threadgbl_deftypes_linkmap.txt
~/fis-gtm-5.4-002B 
make[2]: *** [gtm_threadgbl_deftypes] Error 1
make[2]: Leaving directory `/tmp/buildd/fis-gtm-5.4-002B'
------ End of build -------
make[1]: Leaving directory `/tmp/buildd/fis-gtm-5.4-002B'
   dh_auto_test
 fakeroot debian/rules binary
dh binary 
   dh_testroot
   dh_prep
   dh_installdirs
   debian/rules override_dh_auto_install
make[1]: Entering directory `/tmp/buildd/fis-gtm-5.4-002B'
./pro/gtminstall --utf8 default --installdir /tmp/buildd/fis-gtm-5.4-002B/debian/tmp
make[1]: ./pro/gtminstall: Command not found
make[1]: *** [override_dh_auto_install] Error 127
make[1]: Leaving directory `/tmp/buildd/fis-gtm-5.4-002B'
make: *** [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
E: Failed autobuilding of package
I: unmounting /var/cache/pbuilder/ccache filesystem
I: unmounting dev/pts filesystem
I: unmounting proc filesystem
o
rm -f /tmp/buildd/fis-gtm-5.4-002B/*pro.tar.gz
rm -f idtemp ostemp
make[2]: Leaving directory `/tmp/buildd/fis-gtm-5.4-002B'
------ End of build -------
make[1]: Leaving directory `/tmp/buildd/fis-gtm-5.4-002B'
 dpkg-source -b fis-gtm-5.4-002B
dpkg-source: info: using source format `3.0 (quilt)'
dpkg-source: info: building fis-gtm using existing ./fis-gtm_5.4-002B.orig.tar.gz
dpkg-source: info: building fis-gtm in fis-gtm_5.4-002B-1.debian.tar.gz
dpkg-source: info: building fis-gtm in fis-gtm_5.4-002B-1.dsc
 debian/rules build
dh build 
   dh_testdir
   debian/rules override_dh_auto_configure
make[1]: Entering directory `/tmp/buildd/fis-gtm-5.4-002B'
cp -a ./fis-gtm-src-extras/* .
dh_auto_configure
make[1]: Leaving directory `/tmp/buildd/fis-gtm-5.4-002B'
   debian/rules override_dh_auto_build
make[1]: Entering directory `/tmp/buildd/fis-gtm-5.4-002B'
tcsh ./fis-gtm-src-extras/setupenv.sh
----- Start the build -----
Linux Host 64
Linux Host linux x86_64 x86_regs
Source Directory List: sr_linux sr_x86_64 sr_x86_regs sr_unix_gnp sr_unix_cm sr_unix sr_port_cm sr_port
make[2]: Entering directory `/tmp/buildd/fis-gtm-5.4-002B'
mkdir -p /tmp/buildd/fis-gtm-5.4-002B/pro/map
tcsh -f /tmp/buildd/fis-gtm-5.4-002B/sr_unix/gen_xfer_desc.csh sr_linux sr_x86_64 sr_x86_regs sr_unix_gnp sr_unix_cm sr_unix sr_port_cm sr_port
~/fis-gtm-5.4-002B ~/fis-gtm-5.4-002B/pro/obj 
~/fis-gtm-5.4-002B/pro/obj 
tcsh -f /tmp/buildd/fis-gtm-5.4-002B/sr_unix/gen_gtm_threadgbl_deftypes.csh /tmp/buildd/fis-gtm-5.4-002B sr_port pro/obj sr_linux sr_x86_64 sr_x86_regs sr_unix_gnp sr_unix_cm sr_unix sr_port_cm sr_port
Entering gen_gtm_threadgbl_deftypes.csh to build gtm_threadgbl_deftypes.h
~/fis-gtm-5.4-002B/pro/obj ~/fis-gtm-5.4-002B 
gen_gtm_threadgbl_deftypes.csh-E-: pro build link of /tmp/buildd/fis-gtm-5.4-002B/pro/obj/gtm_threadgbl_deftypes failed, see /tmp/buildd/fis-gtm-5.4-002B/pro/obj/gtm_threadgbl_deftypes_linkmap.txt
~/fis-gtm-5.4-002B 
make[2]: *** [gtm_threadgbl_deftypes] Error 1
make[2]: Leaving directory `/tmp/buildd/fis-gtm-5.4-002B'
------ End of build -------
make[1]: Leaving directory `/tmp/buildd/fis-gtm-5.4-002B'
   dh_auto_test
 fakeroot debian/rules binary
dh binary 
   dh_testroot
   dh_prep
   dh_installdirs
   debian/rules override_dh_auto_install
make[1]: Entering directory `/tmp/buildd/fis-gtm-5.4-002B'
./pro/gtminstall --utf8 default --installdir /tmp/buildd/fis-gtm-5.4-002B/debian/tmp
make[1]: ./pro/gtminstall: Command not found
make[1]: *** [override_dh_auto_install] Error 127
make[1]: Leaving directory `/tmp/buildd/fis-gtm-5.4-002B'
make: *** [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
E: Failed autobuilding of package
------------------------------------------------------------

The problem is that *my* fis-gtm_5.4-002B.orig.tar.gz tarball does not
contain the file fis-gtm-src-extras/pro/gtminstall.  Should I recreate
the orig.tar.gz???
 
> I started experimenting with a second patch to replace
> -I- with -iquote:
> 
> 
> $ cat 02-gtm_env_sp.patch
> Author: Luis Ibanez <luis.ibanez@kitware.com>
> Date: Wed Feb 15 13:03:54 UTC 2012
> Description: Replace obsolete -I- compilation option with -iquote.
> 
> --- fis-gtm-5.4-002B.orig/sr_linux/gtm_env_sp.mk
> +++ fis-gtm-5.4-002B/sr_linux/gtm_env_sp.mk
> @@ -66,7 +66,7 @@
>  gt_cc_options_common+= -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
> -D_XOPEN_SOURCE=600 -fsigned-char
> 
>  ifeq ($(gt_build_type),32)
> -gt_cc_option_I=-I-
> +gt_cc_option_I=-iquote
>  endif
> 
>  ifeq ($(gt_machine_type), x86_64)
> 
> 
> 
> but run into new compilation issues due to the
> fact that now the order of include headers gets
> to be modified.

Hmmm, sounds strange.  In any case you should have learned where to ask
for further details.  It might help to strip down the issue to provide a
very simple text.c file and the call you are doing which reproduces the
problem.
 
> 
> Here is a sampler of the new errors that are
> produced when introducing -iquote:
> 
> ake -C /home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/pro/obj
> -I/home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/pro/obj
> -I/home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/sr_linux
> -I/home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/sr_i386
> -I/home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/sr_x86_regs
> -I/home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/sr_unix_gnp
> -I/home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/sr_unix_cm
> -I/home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/sr_unix_nsb
> -I/home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/sr_unix
> -I/home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/sr_port_cm
> -I/home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/sr_port
> -f /home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/sr_unix/comlist.mk
> CURRENT_BUILDTYPE=pro all
> Linux Host 32
> Linux Host linux i386 x86_regs
> Source Directory List: sr_linux sr_i386 sr_x86_regs sr_unix_gnp
> sr_unix_cm sr_unix_nsb sr_unix sr_port_cm sr_port
> make[3]: Entering directory
> `/home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/pro/obj'
> In file included from
> /home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/sr_port/mdef.h:86,
>                  from
> /home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/sr_port/zyerror_init.c:12:
> /home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/sr_port/gtm_threadgbl.h:17:110:
> error: gtm_threadgbl_deftypes.h: No such file or directory
> In file included from
> /home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/sr_port/mdef.h:86,
>                  from
> /home/ibanez/src/debian-med/trunk/packages/fis-gtm/fis-gtm/fis-gtm-5.4-002B/sr_port/zwr2format.c:12:
> ...

Hmmm:

$ find . -name gtm_threadgbl_deftypes.h
./sr_linux/gtm_threadgbl_deftypes.h
./fis-gtm-src-extras/sr_linux/gtm_threadgbl_deftypes.h
./fis-gtm-src-extras/pro/obj/gtm_threadgbl_deftypes.h

and considering your -I../fis-gtm-5.4-002B/pro/obj it should be found.
That's a bit strange.
 
> Here is below the conversation that I started
> with Bhaskar a few minutes ago, to explore
> alternative solutions:
> 
> 
> 
> In summary, it seems that the use of the -I- option is the
> culprit of the compilation error that we see in pbuilder.
> 
> 
> I'm attempting to replace -I- with -iquote, following
> the following lines from : sr_linux/gtm_env_sp.mk
> 
> 
>  67
>  68 ifeq ($(gt_build_type),32)
>  69 gt_cc_option_I=-iquote
>  70 endif
>  71
>  72 ifeq ($(gt_machine_type), x86_64)
>  73 ifeq ($(gt_build_type),32)
>  74 # Do not lookup the source directory before include directories
> specified by -I.
>  75 # gcc complains about -I- being obsolete, but using -iquote cause
> build errors for gcc and as - ABS 2008.12.09
>  76 #
>  77 # The -I- option is only needed for 32 bit builds on x86_64.  It
> provides a feature that is not present in
>  78 # -iquote - namely -I- disables the ability to search the current
> directory for include files.  This is needed
>  79 # when compiling something in sr_port which includes a file that
> is in both sr_port and the architecture specific
>  80 # sr_386.  We don't want the sr_port version.  An example is
> sr_port/code_gen.c which includes emit_code.h.
>  81 # emit_code.h is found in both sr_port and sr_i386.  Using -I-
> will find the sr_i386 version, but without it the
>  82 # sr_port version is used. SLJ 2010.03.31
>  83
>  84 # The /emul/ia32-linux/... directory doesn't exist on most
> machines, but when it's there we need it.  No problem
>  85 # with always includeing it.
>  86
>  87 gt_cc_option_I+= -I/emul/ia32-linux/usr/include/
>  88 else
>  89 gt_cc_option_I=
>  90 endif
>  91 endif
>  92
> 
> 
> 
> It seems to me that we could address the problem of order of include
> headers by carefully crafting the order in which they are put in the
> command line.  (e.g. this is how we usually handle configuration
> when using CMake).

Hmmm, to less time currently to dive into this but you might give it a
try.
 
> A second option, (for which have the luxury in the Debian packaging)
> is that we could, during the configuration process, copy over the files
> from the architecture specific directories on top of the ones in sr_port,
> and in that way make the point moot.   I have to admit that this is a
> less elegant solution, but maybe a more expedite one...

As a last resort for the *initial* packaging it might work out.  Once we
are doing the real packaging we should not try such dirty tricks.

Just keep us updated and thanks for your effort into this

      Andreas. 

-- 
http://fam-tille.de


Reply to: