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

dpkg-cross: Cannot substitute $(DEB_HOST_GNU_TYPE) in definition of crossdir.



Hello People,

I've found a problem while using my backported for Debian 'sarge'
dpkg-cross 1.32 package (I only changed Build-Depends to stable
debhelper).

I'm trying to convert amd64 lib packages to i386, because I would
like to build my unofficial amd64 Debian packages and backports
on i386 box with Intel processor:

$ wget http://ftp.de.debian.org/debian-amd64/debian/pool/main/g/glibc/libc6_2.3.2.ds1-22sarge4_amd64.deb
$ wget http://ftp.de.debian.org/debian-amd64/debian/pool/main/g/glibc/libc6-dev_2.3.2.ds1-22sarge4_amd64.deb
$ wget http://ftp.de.debian.org/debian-amd64/debian/pool/main/l/linux-kernel-headers/linux-kernel-headers_2.5.999-test7-bk-17_amd64.deb
$ wget http://ftp.de.debian.org/debian-amd64/debian/pool/main/d/db1-compat/libdb1-compat_2.1.3-7_amd64.deb

$ ls l*amd64.deb
libc6_2.3.2.ds1-22sarge4_amd64.deb
libc6-dev_2.3.2.ds1-22sarge4_amd64.deb
libdb1-compat_2.1.3-7_amd64.deb
linux-kernel-headers_2.5.999-test7-bk-17_amd64.deb

If I run dpkg-cross tool with commented out default value of
crossdir variable ($(CROSSBASE)/$(DEB_HOST_GNU_TYPE))
in /etc/dpkg-cross/cross-compile file, then it puts the files
of package in /usr/x86_64-linux-gnu/ directory:

$ dpkg-cross -a amd64 -b l*amd64.deb
Building libc6-amd64-cross_2.3.2.ds1-22sarge4_all.deb
Building libc6-dev-amd64-cross_2.3.2.ds1-22sarge4_all.deb
Building libdb1-compat-amd64-cross_2.1.3-7_all.deb
Building linux-kernel-headers-amd64-cross_2.5.999-test7-bk-17_all.deb
$ mkdir deb
$ dpkg -x libc6-amd64-cross_2.3.2.ds1-22sarge4_all.deb deb/
$ find deb |head -5
deb
deb/usr
deb/usr/x86_64-linux-gnu
deb/usr/x86_64-linux-gnu/lib
deb/usr/x86_64-linux-gnu/lib/ld-2.3.2.so

However dpkg-architecture command says that value of
$DEB_HOST_GNU_TYPE variable should be rather x86_64-linux:

$ dpkg-architecture -aamd64
dpkg-architecture: warning: Specified GNU system type x86_64-linux does not match gcc system type i386-linux.
DEB_BUILD_ARCH=i386
DEB_BUILD_GNU_CPU=i386
DEB_BUILD_GNU_SYSTEM=linux
DEB_BUILD_GNU_TYPE=i386-linux
DEB_HOST_ARCH=amd64
DEB_HOST_GNU_CPU=x86_64
DEB_HOST_GNU_SYSTEM=linux
DEB_HOST_GNU_TYPE=x86_64-linux

If I set crossdir variable to $(CROSSBASE)/$(DEB_HOST_GNU_TYPE)
in /etc/dpkg-cross/cross-compile file, then dpkg-cross utility
can't substitute it:

$ dpkg-cross -a amd64 -b l*amd64.deb
dpkg-cross: Cannot substitute $(DEB_HOST_GNU_TYPE) in definition of crossdir.
Building libc6-amd64-cross_2.3.2.ds1-22sarge4_all.deb
Building libc6-dev-amd64-cross_2.3.2.ds1-22sarge4_all.deb
Building libdb1-compat-amd64-cross_2.1.3-7_all.deb
Building linux-kernel-headers-amd64-cross_2.5.999-test7-bk-17_all.deb

and the package files are placed into /usr/lib/ directory:

$ rm -rf deb/*
$ dpkg -x libc6-amd64-cross_2.3.2.ds1-22sarge4_all.deb deb/
$ find deb |head -5
deb
deb/usr
deb/usr/lib
deb/usr/lib/ld-2.3.2.so
deb/usr/lib/libanl-2.3.2.so

Is it not a strange?  I think you should know about it problem.

Below are my Debian 'sarge' system settings:

* dpkg-dev:   1.10.28
* dpkg-cross: 1.32

My best regards,

Pawel Tecza

PS. Please CC me if you reply, because I'm not subscribed to that
mailing list.  Thank you! :)



Reply to: