tag 708624 patch
thanks

On Fri, May 17, 2013 at 01:27:21PM +0300, Niko Tyni wrote:
> Package: perl-tk
> Version: 1:804.030-1
> Severity: serious
> Tags: sid
>   cc -c  -I.. -I/usr/local/include  -I/usr/include/freetype2 -D_REENTRANT 
> -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-strict-aliasing -pipe 
> -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g   
> -DVERSION=\"4.004\" -DXS_VERSION=\"804.03\" -fPIC "-I/usr/lib/perl/5.14/CORE" 
>   -Wall -Wno-implicit-int -Wno-comment -Wno-unused -D__USE_FIXED_PROTOTYPES__ 
> PNG.c
>   make[2]: *** No rule to make target `zconf.h', needed by `imgPNG.o'.  Stop.

> zlib (1:1.2.8.dfsg-1) unstable; urgency=low
>    [...]
>    * Install zconf.h in multiarch path (closes: #698648).
> 
> It looks like Tk/MakeDepend.pm needs to look in multiarch include paths
> (/usr/include/<triplet>). Possibly the right thing to do is to parse 
> 'cpp -v' output somewhere and feed that to Tk::MakeDepend::command_line().
> My half hearted attempts to override INC from debian/rules weren't
> successful.

Here's a much cruder patch that makes it build for me. 
Hope it helps a bit.

However, I note this warning in the build log:

 dpkg-shlibdeps: warning: package could avoid a useless dependency if 
debian/perl-tk/usr/lib/perl5/auto/Tk/PNG/PNG.so was not linked against 
libz.so.1 (it uses none of the library's symbols).

so presumably the whole zlib stuff is only needed for the bundled libpng
and we shouldn't need it at all?
-- 
Niko Tyni   nt...@debian.org
>From 9a4b2864d4dee36eced96e55e7eda99c3a81b658 Mon Sep 17 00:00:00 2001
From: Niko Tyni <nt...@debian.org>
Date: Fri, 17 May 2013 13:57:27 +0300
Subject: [PATCH] * Fix build failure by passing the multiarch header path
 into   the 'makedepend' phase. (Closes: #708624)

---
 debian/changelog                          |    8 ++++++++
 debian/patches/30-multiarch-headers.patch |   26 ++++++++++++++++++++++++++
 debian/patches/series                     |    1 +
 debian/rules                              |    2 ++
 4 files changed, 37 insertions(+)
 create mode 100644 debian/patches/30-multiarch-headers.patch

diff --git a/debian/changelog b/debian/changelog
index a3d4b3a..abc2b3c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+perl-tk (1:804.030-1.1) UNRELEASED; urgency=low
+
+  * Non-maintainer upload.
+  * Fix build failure by passing the multiarch header path into
+    the 'makedepend' phase. (Closes: #708624)
+
+ -- Niko Tyni <nt...@debian.org>  Fri, 17 May 2013 13:55:56 +0300
+
 perl-tk (1:804.030-1) unstable; urgency=low
 
   * Ack the NMUs
diff --git a/debian/patches/30-multiarch-headers.patch b/debian/patches/30-multiarch-headers.patch
new file mode 100644
index 0000000..4813e25
--- /dev/null
+++ b/debian/patches/30-multiarch-headers.patch
@@ -0,0 +1,26 @@
+From f5b1878137a090af4e770691606b99b3d5dcc100 Mon Sep 17 00:00:00 2001
+From: Niko Tyni <nt...@debian.org>
+Date: Fri, 17 May 2013 13:53:38 +0300
+Subject: [PATCH] Support extra include directories in the 'makedepend' phase
+
+The extra directories are passed in the environment variable
+EXTRAINC and must start with -I, e.g. -I/usr/include/x86_64-linux-gnu
+---
+ Tk/MMutil.pm |    1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Tk/MMutil.pm b/Tk/MMutil.pm
+index 1a69e56..30b233d 100644
+--- a/Tk/MMutil.pm
++++ b/Tk/MMutil.pm
+@@ -250,6 +250,7 @@ sub perldepend
+   {
+    my $tk = installed_tk();
+    my @inc   = split(/\s+/,$self->{'INC'});
++   @inc   = (@inc, split(/\s+/,$ENV{EXTRAINC})) if defined $ENV{EXTRAINC};
+    my @def   = split(/\s+/,$self->{'DEFINE'});
+    push(@def,qw(-DWIN32 -D__WIN32__)) if ($IsWin32);
+    if ($^O eq 'cygwin')
+-- 
+1.7.10.4
+
diff --git a/debian/patches/series b/debian/patches/series
index 37b0dfd..ef18ee6 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
 20-pngsuite-lic.patch
+30-multiarch-headers.patch
diff --git a/debian/rules b/debian/rules
index bdedfb1..7f41958 100755
--- a/debian/rules
+++ b/debian/rules
@@ -6,6 +6,7 @@ PERL ?= /usr/bin/perl
 
 package	:= $(firstword $(shell dh_listpackages))
 prefix	:= $(CURDIR)/debian/$(package)
+DEB_HOST_MULTIARCH = $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
 
 version	:= $(shell dpkg-parsechangelog | \
 			sed -ne 's/^Version: *\([0-9]\+:\)*//p')
@@ -19,6 +20,7 @@ endif
 config:	config-stamp
 config-stamp:
 	dh_testdir
+	EXTRAINC=-I/usr/include/$(DEB_HOST_MULTIARCH) \
 	$(PERL) Makefile.PL XFT=1 INSTALLDIRS=vendor PERL=$(PERL)
 	touch $@
 
-- 
1.7.10.4

Reply via email to