Package: db4.8
Version: 4.8.30-3
Severity: minor
Tags: patch
User: [email protected]
Usertags: origin-ubuntu natty ubuntu-patch
Hi Clint,
As part of an effort to make the Ubuntu base system cross-compilable, we've
found that the db4.8 debian/rules uses DEB_BUILD_* variables in several
places where DEB_HOST_* is meant, and also that it invokes binutils binaries
directly without accounting for possible cross-building. Furthermore, the
--with-tcl argument doesn't play nicely with a cross-installed package; when
cross-building it's probably better to assume /usr/$(DEB_HOST_ARCH)/lib as a
path.
Attached is a patch that's been applied in Ubuntu to fix these three issues.
The corresponding changelog entry is:
* Enable both native & cross building by using DEB_HOST variables,
rather than DEB_BUILD ones.
* Pass correct values to configure for cross building
* Use correct binutils for cross building
You may want to apply this fix in Debian as well.
BTW, while fixing this I noticed a certain inconsistency between the
arch-specific Java build-dependencies and debian/rules. The package
build-depends on default-jdk-builddep on armel, but then checks if
$(DEB_HOST_GNU_CPU) matches arm - which it does because the GNU CPU variable
is the same for the old arm port and the new armel port. I'm not sure if
this is a spurious build-dependency or an accidentally omitted java package
on armel so I'm not proposing a patch for this, but you might want to
reconcile this one way or the other.
Thanks,
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer http://www.debian.org/
[email protected] [email protected]
=== modified file 'debian/rules'
--- debian/rules 2010-04-04 09:07:08 +0000
+++ debian/rules 2011-02-01 00:56:47 +0000
@@ -20,6 +20,7 @@
DEB_BUILD_GNU_CPU ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_CPU)
DEB_BUILD_GNU_SYSTEM ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_SYSTEM)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_HOST_GNU_CPU ?= $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
DEB_HOST_GNU_SYSTEM ?= $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
@@ -28,7 +29,14 @@
JAVA_UNSUPPORTED_SYSTEMS = zgnuz zknetbsd-gnuz
-include /usr/share/gcj/debian_defaults
-CONFIGURE_VARS = CC=gcc CFLAGS="$(CFLAGS)" CPPFLAGS="-I/usr/include/tcl8.5"
+ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
+ CONFIGURE_VARS = CC=gcc CFLAGS="$(CFLAGS)" CPPFLAGS="-I/usr/include/tcl8.5"
+ TCLDIR=/usr/lib/tcl8.5
+else
+ CONFIGURE_VARS = CC=$(DEB_HOST_GNU_TYPE)-gcc CXX=$(DEB_HOST_GNU_TYPE)-g++ CFLAGS="$(CFLAGS)" CPPFLAGS="-I/usr/$(DEB_HOST_GNU_TYPE)/include/tcl8.5"
+ TCLDIR=/usr/$(DEB_HOST_GNU_TYPE)/lib/tcl8.5
+endif
+
CONFIGURE_SWITCHES = --prefix=/usr \
--mandir=\$${prefix}/share/man \
--localstatedir=/var \
@@ -37,7 +45,7 @@
--enable-cxx \
--enable-compat185 \
--enable-tcl \
- --with-tcl=/usr/lib/tcl8.5 \
+ --with-tcl=$(TCLDIR) \
--enable-test
DB_BINARY_PKGS = libdb4.8 libdb4.8-dev libdb4.8++ libdb4.8++-dev libdb4.8-tcl db4.8-util libdb4.8-dbg
@@ -46,8 +54,17 @@
CONFIGURE_SWITCHES += --with-mutex=POSIX/pthreads/library
endif
-ifeq (,$(findstring z$(DEB_BUILD_GNU_CPU)z,$(JAVA_UNSUPPORTED_CPUS)))
-ifeq (,$(findstring z$(DEB_BUILD_GNU_SYSTEM)z,$(JAVA_UNSUPPORTED_SYSTEMS)))
+ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
+ STRIP = strip
+ OBJCOPY = objcopy
+else
+ STRIP = $(DEB_HOST_GNU_TYPE)-strip
+ OBJCOPY = $(DEB_HOST_GNU_TYPE)-objcopy
+ CONFIGURE_SWITCHES += --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)
+endif
+
+ifeq (,$(findstring z$(DEB_HOST_GNU_CPU)z,$(JAVA_UNSUPPORTED_CPUS)))
+ifeq (,$(findstring z$(DEB_HOST_GNU_SYSTEM)z,$(JAVA_UNSUPPORTED_SYSTEMS)))
JAVA_HOME = /usr/lib/jvm/default-java
JAVA_BIN = $(JAVA_HOME)/bin
CFLAGS += -I$(JAVA_HOME)/include
@@ -156,16 +173,16 @@
debian/lib$(package)-java-dev/usr/lib \
debian/lib$(package)-dbg/usr/lib/debug/usr/lib
- objcopy --only-keep-debug debian/tmp/usr/lib/libdb-$(bdbversion).so \
+ $(OBJCOPY) --only-keep-debug debian/tmp/usr/lib/libdb-$(bdbversion).so \
debian/lib$(package)-dbg/usr/lib/debug/usr/lib/libdb-$(bdbversion).so.debug
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
- strip --remove-section=.note --remove-section=.comment \
+ $(STRIP) --remove-section=.note --remove-section=.comment \
debian/tmp/usr/lib/*.so debian/tmp/usr/bin/*
- strip --strip-debug debian/tmp/usr/lib/*.a
+ $(STRIP) --strip-debug debian/tmp/usr/lib/*.a
endif
- objcopy --add-gnu-debuglink=debian/lib$(package)-dbg/usr/lib/debug/usr/lib/libdb-$(bdbversion).so.debug \
+ $(OBJCOPY) --add-gnu-debuglink=debian/lib$(package)-dbg/usr/lib/debug/usr/lib/libdb-$(bdbversion).so.debug \
debian/tmp/usr/lib/libdb-$(bdbversion).so
chmod 644 debian/tmp/usr/lib/*.so debian/tmp/usr/include/*.h
@@ -175,13 +192,13 @@
cp -a debian/tmp/usr/bin debian/$(package)-util/usr
cp -a debian/tmp/usr/lib/*.so debian/tmp/usr/lib/*.a \
debian/tmp/usr/lib/*.la debian/lib$(package)-dev/usr/lib
-ifeq (,$(findstring z$(DEB_BUILD_GNU_CPU)z,$(JAVA_UNSUPPORTED_CPUS)))
-ifeq (,$(findstring z$(DEB_BUILD_GNU_SYSTEM)z,$(JAVA_UNSUPPORTED_SYSTEMS)))
+ifeq (,$(findstring z$(DEB_HOST_GNU_CPU)z,$(JAVA_UNSUPPORTED_CPUS)))
+ifeq (,$(findstring z$(DEB_HOST_GNU_SYSTEM)z,$(JAVA_UNSUPPORTED_SYSTEMS)))
cp -a debian/tmp/usr/lib/db.jar \
debian/lib$(package)-java/usr/share/java/lib$(package)-java-$(version).jar
ln -s lib$(package)-java-$(version).jar \
debian/lib$(package)-java/usr/share/java/lib$(package)-java.jar
-ifneq (,$(filter $(DEB_BUILD_ARCH), $(gcj_native_archs)))
+ifneq (,$(filter $(DEB_HOST_ARCH), $(gcj_native_archs)))
mkdir debian/lib$(package)-java-gcj
(TMPFILE=$$(mktemp --tmpdir sourcelist.XXXXXXXXXX) && \
find $(CURDIR) -type f ! -type l >$$TMPFILE && \
@@ -196,8 +213,8 @@
mv debian/lib$(package)-dev/usr/lib/*cxx* debian/lib$(package)++-dev/usr/lib
mv debian/lib$(package)-dev/usr/include/*cxx* debian/lib$(package)++-dev/usr/include
mv debian/lib$(package)-dev/usr/lib/*tcl* debian/lib$(package)-tcl/usr/lib
-ifeq (,$(findstring z$(DEB_BUILD_GNU_CPU)z,$(JAVA_UNSUPPORTED_CPUS)))
-ifeq (,$(findstring z$(DEB_BUILD_GNU_SYSTEM)z,$(JAVA_UNSUPPORTED_SYSTEMS)))
+ifeq (,$(findstring z$(DEB_HOST_GNU_CPU)z,$(JAVA_UNSUPPORTED_CPUS)))
+ifeq (,$(findstring z$(DEB_HOST_GNU_SYSTEM)z,$(JAVA_UNSUPPORTED_SYSTEMS)))
mv debian/lib$(package)-dev/usr/lib/*java* debian/lib$(package)-java/usr/lib
mv debian/lib$(package)-java/usr/lib/libdb*.a \
@@ -230,12 +247,12 @@
echo 'libdb $(bdbversion) lib$(package)' >debian/lib$(package)/DEBIAN/shlibs
echo 'libdb_cxx $(bdbversion) lib$(package)++' >debian/lib$(package)++/DEBIAN/shlibs
echo 'libdb_tcl $(bdbversion) lib$(package)-tcl' >debian/lib$(package)-tcl/DEBIAN/shlibs
-ifeq (,$(findstring z$(DEB_BUILD_GNU_CPU)z,$(JAVA_UNSUPPORTED_CPUS)))
-ifeq (,$(findstring z$(DEB_BUILD_GNU_SYSTEM)z,$(JAVA_UNSUPPORTED_SYSTEMS)))
+ifeq (,$(findstring z$(DEB_HOST_GNU_CPU)z,$(JAVA_UNSUPPORTED_CPUS)))
+ifeq (,$(findstring z$(DEB_HOST_GNU_SYSTEM)z,$(JAVA_UNSUPPORTED_SYSTEMS)))
echo 'libdb_java $(bdbversion) lib$(package)-java' >debian/lib$(package)-java/DEBIAN/shlibs
$(INSTALL_SCRIPT) debian/libjava.postinst debian/lib$(package)-java/DEBIAN/postinst
-ifneq (,$(filter $(DEB_BUILD_ARCH), $(gcj_native_archs)))
+ifneq (,$(filter $(DEB_HOST_ARCH), $(gcj_native_archs)))
$(INSTALL_SCRIPT) debian/java-gcj.postrm debian/lib$(package)-java-gcj/DEBIAN/postrm
$(INSTALL_SCRIPT) debian/java-gcj.postinst debian/lib$(package)-java-gcj/DEBIAN/postinst
endif