[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#384102: 32-bit biarch support



Package: libx11-6
Version: 2:1.0.0-8
Severity: wishlist
Tags: patch

Patch attached for 32-bit biarch support (lib32x11-6 and lib32x11-dev).

(needs lib32xdmcp and lib32xau first)

-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-1-amd64-k8
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8)

Versions of packages libx11-6 depends on:
ii  libc6                         2.3.6-15   GNU C Library: Shared libraries
ii  libx11-data                   2:1.0.0-8  X11 client-side library
ii  libxau6                       1:1.0.0-3  X11 authorisation library
ii  libxdmcp6                     1:1.0.0-4  X11 Display Manager Control Protoc
ii  x11-common                    1:7.0.22   X Window System (X.Org) infrastruc

libx11-6 recommends no packages.

-- debconf information excluded
diff -Nur libx11-1.0.0.old/debian/control libx11-1.0.0/debian/control
--- libx11-1.0.0.old/debian/control	2006-08-21 20:06:08.000000000 +0200
+++ libx11-1.0.0/debian/control	2006-08-21 21:47:32.000000000 +0200
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
 Uploaders: David Nusinow <dnusinow@debian.org>, Branden Robinson <branden@debian.org>, Fabio M. Di Nitto <fabbione@fabbione.net>
-Build-Depends: debhelper (>= 5.0.0), pkg-config, xtrans-dev, x11proto-bigreqs-dev, x11proto-core-dev, x11proto-kb-dev, x11proto-input-dev, x11proto-xext-dev, x11proto-xf86bigfont-dev, libxdmcp-dev (>= 1:1.0.0-1), libxau-dev (>= 1:1.0.0-1), x11proto-xcmisc-dev, quilt
+Build-Depends: debhelper (>= 5.0.0), pkg-config, xtrans-dev, x11proto-bigreqs-dev, x11proto-core-dev, x11proto-kb-dev, x11proto-input-dev, x11proto-xext-dev, x11proto-xf86bigfont-dev, libxdmcp-dev (>= 1:1.0.0-1), lib32xdmcp-dev (>= 1:1.0.0-1) [amd64], libxau-dev (>= 1:1.0.0-1), lib32xau-dev (>= 1:1.0.0-1) [amd64], x11proto-xcmisc-dev, quilt
 Standards-Version: 3.7.2
 
 Package: libx11-6
@@ -72,3 +72,41 @@
  .
  This module can be found as the module 'lib/X11' at
  :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg
+
+Package: lib32x11-6
+Architecture: amd64
+Depends: ${shlibs:Depends}, ${misc:Depends}, libx11-data
+Pre-Depends: x11-common (>= 1:7.0.0)
+Conflicts: xlibs-data (<< 1:7.0.0)
+Description: X11 client-side library
+ This package provides the main client interface to the X Window System, and is
+ otherwise known as 'Xlib'.  It provides a complete API for the basic functions
+ of the window system.
+ .
+ More information about X.Org can be found at:
+ <URL:http://xorg.freedesktop.org>
+ <URL:http://lists.freedesktop.org/mailman/listinfo/xorg>
+ .
+ This module can be found as the module 'lib/X11' at
+ :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg
+ .
+ This package supports the 32-bit ABI variant of your system's
+ architecure.
+
+Package: lib32x11-dev
+Architecture: amd64
+Depends: ${shlibs:Depends}, ${misc:Depends}, lib32x11-6 (= ${Source-Version}), lib32xau-dev (>= 1:1.0.0-1), lib32xdmcp-dev (>= 1:1.0.0-1), libxext-dev, x11proto-core-dev (>= 6.8.99.8-1), x11proto-input-dev, x11proto-kb-dev, xtrans-dev, lib32c-dev, libx11-dev (= ${Source-Version})
+Description: X11 client-side library (development headers)
+ This package provides the main client interface to the X Window System, and is
+ otherwise known as 'Xlib'.  It provides a complete API for the basic functions
+ of the window system.
+ .
+ This package contains the development headers for the library found in 
+ libx11-6. Non-developers likely have little use for this package.
+ .
+ More information about X.Org can be found at:
+ <URL:http://xorg.freedesktop.org>
+ <URL:http://lists.freedesktop.org/mailman/listinfo/xorg>
+ .
+ This module can be found as the module 'lib/X11' at
+ :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg
diff -Nur libx11-1.0.0.old/debian/lib32x11-6.install libx11-1.0.0/debian/lib32x11-6.install
--- libx11-1.0.0.old/debian/lib32x11-6.install	1970-01-01 01:00:00.000000000 +0100
+++ libx11-1.0.0/debian/lib32x11-6.install	2006-08-21 21:49:43.000000000 +0200
@@ -0,0 +1,14 @@
+emul/ia32-linux/usr/lib/libX11.so.6
+emul/ia32-linux/usr/lib/libX11.so.6.2.0
+emul/ia32-linux/usr/lib/X11/locale/common/ximcp.so.2
+emul/ia32-linux/usr/lib/X11/locale/common/ximcp.so.2.0.0
+emul/ia32-linux/usr/lib/X11/locale/common/xlcDef.so.2
+emul/ia32-linux/usr/lib/X11/locale/common/xlcDef.so.2.0.0
+emul/ia32-linux/usr/lib/X11/locale/common/xlcUTF8Load.so.2
+emul/ia32-linux/usr/lib/X11/locale/common/xlcUTF8Load.so.2.0.0
+emul/ia32-linux/usr/lib/X11/locale/common/xlibi18n.so.2
+emul/ia32-linux/usr/lib/X11/locale/common/xlibi18n.so.2.0.0
+emul/ia32-linux/usr/lib/X11/locale/common/xlocale.so.2
+emul/ia32-linux/usr/lib/X11/locale/common/xlocale.so.2.0.0
+emul/ia32-linux/usr/lib/X11/locale/common/xomGeneric.so.2
+emul/ia32-linux/usr/lib/X11/locale/common/xomGeneric.so.2.0.0
diff -Nur libx11-1.0.0.old/debian/lib32x11-dev.install libx11-1.0.0/debian/lib32x11-dev.install
--- libx11-1.0.0.old/debian/lib32x11-dev.install	1970-01-01 01:00:00.000000000 +0100
+++ libx11-1.0.0/debian/lib32x11-dev.install	2006-08-21 21:49:58.000000000 +0200
@@ -0,0 +1,3 @@
+emul/ia32-linux/usr/lib/libX11.a
+emul/ia32-linux/usr/lib/libX11.so
+emul/ia32-linux/usr/lib/pkgconfig/x11.pc
diff -Nur libx11-1.0.0.old/debian/rules libx11-1.0.0/debian/rules
--- libx11-1.0.0.old/debian/rules	2006-08-21 20:06:08.000000000 +0200
+++ libx11-1.0.0/debian/rules	2006-08-21 22:20:39.000000000 +0200
@@ -36,10 +36,11 @@
 DEB_HOST_ARCH      ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
 DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
-ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
-	confflags += --build=$(DEB_HOST_GNU_TYPE)
-else
-	confflags += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
+
+ifeq ($(DEB_HOST_ARCH), amd64)
+build32-target = i686-$(DEB_HOST_GNU_SYSTEM)
+lib32 = /emul/ia32-linux/lib
+usr_lib32 = /emul/ia32-linux/usr/lib
 endif
 
 confflags += --enable-man-pages=3 --enable-loadable-i18n
@@ -55,9 +56,20 @@
 	cd obj-$(DEB_BUILD_GNU_TYPE) && \
 	../configure --prefix=/usr --mandir=\$${prefix}/share/man \
 	             --infodir=\$${prefix}/share/info $(confflags) \
+	             --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \
 	             CFLAGS="$(CFLAGS)" 
 	cd obj-$(DEB_BUILD_GNU_TYPE) && $(MAKE)
 
+ifneq (, $(build32-target))
+	test -d obj-$(build32-target) || mkdir obj-$(build32-target)
+	cd obj-$(build32-target) && \
+	../configure --prefix=/usr --mandir=\$${prefix}/share/man \
+	             --infodir=\$${prefix}/share/info $(confflags) \
+	             --build=$(build32-target) --host=$(build32-target) --libdir=$(usr_lib32) \
+	             CFLAGS="$(CFLAGS)" CC="gcc -m32" BUILD_CC="gcc" CXX="g++ -m32"
+	cd obj-$(build32-target) && $(MAKE)
+endif
+
 	touch build-stamp
 
 clean: xsfclean
@@ -80,6 +92,9 @@
 	dh_installdirs
 
 	cd obj-$(DEB_BUILD_GNU_TYPE) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
+ifneq (, $(build32-target))
+	cd obj-$(build32-target) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
+endif
 
 # Build architecture-dependent files here.
 binary-arch: build install
@@ -94,7 +109,7 @@
 	dh_compress -s
 	dh_fixperms -s
 	dh_makeshlibs -s
-	dh_shlibdeps -s
+	dh_shlibdeps -s -l$(lib32):$(usr_lib32)
 	dh_installdeb -s
 	dh_gencontrol -s
 	dh_md5sums -s

Reply to: