Package: expat
Version: 2.1.0-4
Severity: normal
Tags: patch

Dear Maintainer,

For the ppc64el architecture in Ubuntu, since this package uses libtool, a full autoreconf is necessary. This is because we need new libtool macros for ppc64el.

In Ubuntu, the attached patch was applied to achieve the following:

  * Use dh-autoreconf to fix FTBFS on ppc64el.
  * Enable parallel builds.

Thanks for considering the patch.

Erwan Prioul.

-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: ppc64el (ppc64le)

Kernel: Linux 3.13-1-powerpc64le (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

--- a/debian/control
+++ b/debian/control
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: Laszlo Boszormenyi (GCS) <g...@debian.org>
 Standards-Version: 3.9.4
-Build-Depends: debhelper (>= 8.1.3), docbook-to-man,
+Build-Depends: debhelper (>= 8.1.3), docbook-to-man, dh-autoreconf,
  dpkg-dev (>= 1.16.0),
  gcc-multilib [i386 powerpc sparc s390]
 Homepage: http://expat.sourceforge.net
--- a/debian/rules
+++ b/debian/rules
@@ -43,23 +43,33 @@
 
 UPACKAGE = $(shell dh_listpackages | grep -- -udeb$$)
 
-build/config.status: configure
+COMMA = ,
+ifneq (,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
+  NJOBS := -j $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
+endif
+
+config-common-stamp:
+	dh_testdir
+	dh_autoreconf
+	touch $@
+
+build/config.status: config-common-stamp
 	dh_testdir
 	(mkdir -p $(@D); cd $(@D); CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \
 	 ../configure $(CONFFLAGS) --prefix=/usr --mandir=\$${prefix}/share/man --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH))
 
-buildw/config.status: configure
+buildw/config.status: config-common-stamp
 	dh_testdir
 	(mkdir -p $(@D); cd $(@D); CFLAGS="$(CFLAGS) -DXML_UNICODE" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \
 	 ../configure $(CONFFLAGS) --prefix=/usr --mandir=\$${prefix}/share/man --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH))
 
-build64/config.status: configure
+build64/config.status: config-common-stamp
 	dh_testdir
 	(mkdir -p $(@D); cd $(@D); CFLAGS="-m64 $(CFLAGS)" CPPFLAGS="$(CPPFLAGS)"  LDFLAGS="$(LDFLAGS)" \
 	 ../configure $(CONFFLAGS) $(HOST64FLAG) --prefix=/usr --mandir=\$${prefix}/share/man \
 	 --libdir=\$${prefix}/lib64)
 
-buildw64/config.status: configure
+buildw64/config.status: config-common-stamp
 	dh_testdir
 	(mkdir -p $(@D); cd $(@D); CFLAGS="-m64 $(CFLAGS) -DXML_UNICODE" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \
 	 ../configure $(CONFFLAGS) $(HOST64FLAG) --prefix=/usr --mandir=\$${prefix}/share/man \
@@ -70,18 +80,19 @@
 	dh_testroot
 	rm -rf build/ build64/ buildw/ buildw64/
 	rm -rf debian/tmp/
-	dh_clean build-stamp debian/xmlwf.1
+	dh_autoreconf_clean
+	dh_clean config-common-stamp build-stamp debian/xmlwf.1
 
 build: build-stamp
 build-arch: build-stamp
 build-indep: build-stamp
 build-stamp: build/config.status buildw/config.status $(if $(BUILD64), build64/config.status buildw64/config.status)
 	dh_testdir
-	$(MAKE) -C build/
-	$(MAKE) -C buildw/ buildlib LIBRARY=libexpatw.la
+	$(MAKE) $(NJOBS) -C build/
+	$(MAKE) $(NJOBS) -C buildw/ buildlib LIBRARY=libexpatw.la
 ifneq ($(BUILD64),)
-	$(MAKE) -C build64/ buildlib
-	$(MAKE) -C buildw64/ buildlib LIBRARY=libexpatw.la
+	$(MAKE) $(NJOBS) -C build64/ buildlib
+	$(MAKE) $(NJOBS) -C buildw64/ buildlib LIBRARY=libexpatw.la
 endif
 	docbook-to-man doc/xmlwf.sgml > debian/xmlwf.1
 	touch $@

Reply via email to