Bug#696395: vte: please support multiarch

Colin Watson cjwatson at ubuntu.com
Thu Dec 20 12:34:19 UTC 2012


Package: vte
Version: 1:0.28.2-5
Severity: wishlist
Tags: patch
User: multiarch-devel at lists.alioth.debian.org
Usertags: multiarch

Hi,

It'd be helpful if vte were converted to multiarch.  This would unblock
cross-building of the 27 packages that build-depend on it.  (I realise
that vte3 probably ought to be done too, but this was the one I ran into
first ...)

I omitted the generated debian/control diff.

I went to some effort to convert libvte-dev to Multi-Arch: same,
including forwarding a relevant patch upstream, before realising that it
isn't currently possible to coinstall multiple libvte-dev packages
because none of libcairo2-dev, libgtk2.0-dev, libpango1.0-dev, and
libglib2.0-dev are Multi-Arch: same.  Still, I don't think it's harmful
to include that part of the patch anyway.

  * Support multiarch.

diff -Nru vte-0.28.2/debian/control.in vte-0.28.2/debian/control.in
--- vte-0.28.2/debian/control.in	2011-12-31 13:58:59.000000000 +0000
+++ vte-0.28.2/debian/control.in	2012-12-19 18:23:16.000000000 +0000
@@ -5,8 +5,8 @@
 Uploaders: @GNOME_TEAM@
 Standards-Version: 3.9.2
 X-Python-Version: >= 2.3
-Build-Depends: cdbs (>= 0.4.90),
-               debhelper (>= 8),
+Build-Depends: cdbs (>= 0.4.93~),
+               debhelper (>= 8.1.3~),
                gnome-pkg-tools (>= 0.10),
                dh-autoreconf,
                libglib2.0-dev (>= 2.26.0),
@@ -27,6 +27,8 @@
 
 Package: libvte9
 Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
 Depends: ${misc:Depends},
          ${shlibs:Depends},
          libvte-common (= ${source:Version})
@@ -57,6 +59,7 @@
 
 Package: libvte-dev
 Architecture: any
+Multi-Arch: same
 Section: libdevel
 Depends: ${misc:Depends},
          libvte9 (= ${binary:Version}),
@@ -80,6 +83,7 @@
 
 Package: libvte-common
 Architecture: all
+Multi-Arch: foreign
 Depends: ${misc:Depends}
 Breaks: libvte9 (<< 1:0.28)
 Description: Terminal emulator widget for GTK+ 2.x - common files
diff -Nru vte-0.28.2/debian/libvte-dev.install vte-0.28.2/debian/libvte-dev.install
--- vte-0.28.2/debian/libvte-dev.install	2011-01-05 02:01:29.000000000 +0000
+++ vte-0.28.2/debian/libvte-dev.install	2012-12-19 18:16:49.000000000 +0000
@@ -1,6 +1,6 @@
 usr/include/vte-0.0
-usr/lib/pkgconfig/vte.pc
-usr/lib/pkgconfig/pyvte.pc
-usr/lib/libvte.a
-usr/lib/libvte.so
+usr/lib/*/pkgconfig/vte.pc
+usr/lib/*/pkgconfig/pyvte.pc
+usr/lib/*/libvte.a
+usr/lib/*/libvte.so
 usr/share/pygtk/2.0/defs
diff -Nru vte-0.28.2/debian/libvte9-udeb.install vte-0.28.2/debian/libvte9-udeb.install
--- vte-0.28.2/debian/libvte9-udeb.install	2011-01-04 23:40:52.000000000 +0000
+++ vte-0.28.2/debian/libvte9-udeb.install	2012-12-19 18:16:21.000000000 +0000
@@ -1,2 +1,2 @@
-usr/lib/libvte.so.*
+usr/lib/*/libvte.so.*
 usr/share/vte/termcap-*
diff -Nru vte-0.28.2/debian/libvte9.install vte-0.28.2/debian/libvte9.install
--- vte-0.28.2/debian/libvte9.install	2011-01-04 23:40:52.000000000 +0000
+++ vte-0.28.2/debian/libvte9.install	2012-12-19 18:16:13.000000000 +0000
@@ -1,2 +1,2 @@
-usr/lib/libvte.so.*
-usr/lib/libvte9
+usr/lib/*/libvte.so.*
+usr/lib/*/libvte9
diff -Nru vte-0.28.2/debian/libvte9.lintian-overrides vte-0.28.2/debian/libvte9.lintian-overrides
--- vte-0.28.2/debian/libvte9.lintian-overrides	2011-04-14 23:07:23.000000000 +0100
+++ vte-0.28.2/debian/libvte9.lintian-overrides	2012-12-19 18:15:29.000000000 +0000
@@ -1,2 +1,2 @@
 # Setgid on purpose to write the utmp file
-libvte9: setgid-binary usr/lib/libvte9/gnome-pty-helper 2755 root/utmp
+libvte9: setgid-binary usr/lib/*/libvte9/gnome-pty-helper 2755 root/utmp
diff -Nru vte-0.28.2/debian/patches/70_multiarch.patch vte-0.28.2/debian/patches/70_multiarch.patch
--- vte-0.28.2/debian/patches/70_multiarch.patch	1970-01-01 01:00:00.000000000 +0100
+++ vte-0.28.2/debian/patches/70_multiarch.patch	2012-12-20 11:20:39.000000000 +0000
@@ -0,0 +1,22 @@
+Description: Make header files multiarch-compatible
+ In order for libvte-dev to be Multi-Arch: same, the headers it contains
+ need to be identical across architectures.  Using @basename@ rather than
+ @filename@ removes the build directory from vtetypebuiltins.h and thus
+ makes it identical across architectures.
+Author: Colin Watson <cjwatson at ubuntu.com>
+Forwarded: no
+Last-Update: 2012-12-20
+
+Index: b/src/vtetypebuiltins.h.template
+===================================================================
+--- a/src/vtetypebuiltins.h.template
++++ b/src/vtetypebuiltins.h.template
+@@ -13,7 +13,7 @@
+ 
+ /*** BEGIN file-production ***/
+ 
+-/* enumerations from "@filename@" */
++/* enumerations from "@basename@" */
+ /*** END file-production ***/
+ 
+ /*** BEGIN value-header ***/
diff -Nru vte-0.28.2/debian/patches/series vte-0.28.2/debian/patches/series
--- vte-0.28.2/debian/patches/series	2012-06-23 15:02:56.000000000 +0100
+++ vte-0.28.2/debian/patches/series	2012-12-20 11:17:03.000000000 +0000
@@ -4,3 +4,4 @@
 04_CVE-2012-2738.patch
 25_optional-ncurses.patch
 60_termcap-home-end.patch
+70_multiarch.patch
diff -Nru vte-0.28.2/debian/rules vte-0.28.2/debian/rules
--- vte-0.28.2/debian/rules	2011-12-11 21:55:27.000000000 +0000
+++ vte-0.28.2/debian/rules	2012-12-19 18:14:29.000000000 +0000
@@ -14,11 +14,13 @@
 include /usr/share/gnome-pkg-tools/1/rules/uploaders.mk
 include /usr/share/gnome-pkg-tools/1/rules/gnome-get-source.mk
 
-DEB_CONFIGURE_LIBEXECDIR := \$${prefix}/lib/$(libvteN)
+DEB_CONFIGURE_LIBEXECDIR := \$${prefix}/lib/$(DEB_HOST_MULTIARCH)/$(libvteN)
 DEB_FIXPERMS_EXCLUDE += gnome-pty-helper
 DEB_DH_MAKESHLIBS_ARGS_$(libvteN) += -V '$(libvteN) (>= 1:0.28.0)' --add-udeb=$(udeb)
 
-DEB_CONFIGURE_EXTRA_FLAGS += PYTHON="/usr/bin/$(cdbs_make_curflavor)"
+DEB_CONFIGURE_EXTRA_FLAGS += \
+	--libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \
+	PYTHON="/usr/bin/$(cdbs_make_curflavor)"
 
 DEB_CONFIGURE_FLAGS_main += \
 	--disable-python

Thanks,

-- 
Colin Watson                                       [cjwatson at ubuntu.com]



More information about the pkg-gnome-maintainers mailing list