On Mon, 12 May 2014 at 02:48:26 +0200, John Paul Adrian Glaubitz wrote:
> > /usr/lib/*/libzip/include/zipconf.h looks like multiarch file,
> > is it not the right place?
>
> Indeed. The mentioned header file is platform-specific, so it might
> not be wise to put it under the general /usr/include directory
> structure.
On Debian and its derivatives (unlike other Linux distributions) the
compiler's default search path includes /usr/include/${DEB_HOST_MULTIARCH},
so it is possible to have headers that are available by default
*and* in an architecture-specific location.
The most appropriate place depends whether the intended API for libzip-dev is
"you should be able to use this library with cc -lzip" or "you are
expected to use pkg-config", which is partially a question for upstream.
GLib and libdbus are among the libraries whose intended API is "you are
expected to use pkg-config". Their headers are very deliberately not
on the compiler's default search path, and you are expected to put
something like `pkg-config --cflags glib-2.0` on the compiler command-line.
However, if libzip was in that category, I would expect it not to install
zip.h in the compiler's default search path. Getting there from here
is an API change, of a sort.
> I therefore suggest that, at least for the time being, we apply Mateusz'
> patch and revert the package back to a non-Multi-Arch version such that
> other packages which build-depend on libzip will no longer FTBFS.
That seems a reasonable short-term solution. However, multiarch -dev
packages are A Good Thing in general. The way to be multiarch while still
on the default search path is to copy, move or symlink zipconf.h into
/usr/include/${DEB_HOST_MULTIARCH}.
I attach a possible debdiff. I have not tested it against any unpatched
build-dependencies, so no patch tag just yet.
Regards,
S
diffstat for libzip-0.11.2 libzip-0.11.2
changelog | 9 +++++++++
rules | 7 +++++++
2 files changed, 16 insertions(+)
diff -Nru libzip-0.11.2/debian/changelog libzip-0.11.2/debian/changelog
--- libzip-0.11.2/debian/changelog 2014-02-09 16:32:08.000000000 +0000
+++ libzip-0.11.2/debian/changelog 2014-08-02 21:16:02.000000000 +0100
@@ -1,3 +1,12 @@
+libzip (0.11.2-1.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Put a symlink to zipconf.h on the default search path, so that
+ packages that do not use pkg-config to locate libzip will not FTBFS
+ (Closes: #739308)
+
+ -- Simon McVittie <[email protected]> Sat, 02 Aug 2014 21:13:50 +0100
+
libzip (0.11.2-1) unstable; urgency=medium
* New upstream release (Closes: #734388).
diff -Nru libzip-0.11.2/debian/rules libzip-0.11.2/debian/rules
--- libzip-0.11.2/debian/rules 2012-07-07 02:59:33.000000000 +0100
+++ libzip-0.11.2/debian/rules 2014-08-02 21:16:02.000000000 +0100
@@ -3,5 +3,12 @@
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
+DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+
%:
dh $@ --parallel --list-missing --with autoreconf
+
+override_dh_link:
+ install -d debian/libzip-dev/usr/include/${DEB_HOST_MULTIARCH}
+ ln -s ../../lib/${DEB_HOST_MULTIARCH}/libzip/include/zipconf.h debian/libzip-dev/usr/include/${DEB_HOST_MULTIARCH}/zipconf.h
+ dh_link