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

Bug#384204: 32-bit biarch support



Package: libsm6
Version: 1:1.0.1-1
Severity: wishlist
Tags: patch

Patch attached for 32-bit biarch support (lib32sm6 and lib32sm-dev).

(needs lib32ice 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 libsm6 depends on:
ii  libc6                         2.3.6-15   GNU C Library: Shared libraries
ii  libice6                       1:1.0.1-1  X11 Inter-Client Exchange library
ii  x11-common                    1:7.0.22   X Window System (X.Org) infrastruc

libsm6 recommends no packages.

-- no debconf information
diff -Nur libsm-1.0.1.old/debian/control libsm-1.0.1/debian/control
--- libsm-1.0.1.old/debian/control	2006-08-21 20:06:06.000000000 +0200
+++ libsm-1.0.1/debian/control	2006-08-22 17:08:57.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, x11proto-core-dev (>= 6.8.99.15+cvs.20050722-1), xtrans-dev, libice-dev (>= 1:1.0.0-1)
+Build-Depends: debhelper (>= 5.0.0), libc6-dev-i386 [amd64], pkg-config, x11proto-core-dev (>= 6.8.99.15+cvs.20050722-1), xtrans-dev, libice-dev (>= 1:1.0.0-1), lib32ice-dev (>= 1:1.0.0-1) [amd64]
 Standards-Version: 3.7.2.0
 
 Package: libsm6
@@ -57,3 +57,41 @@
  .
  This module can be found as the module 'lib/SM' at
  :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg
+
+Package: lib32sm6
+Architecture: amd64
+Depends: ${shlibs:Depends}, ${misc:Depends}, x11-common
+Description: X11 Session Management library
+ This package provides the main interface to the X11 Session Management
+ library, which allows for applications to both manage sessions, and make use
+ of session managers to save and restore their state for later use.
+ .
+ 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/SM' at
+ :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg
+ .
+ This package supports the 32-bit ABI variant of your system's architecture.
+
+Package: lib32sm-dev
+Architecture: amd64
+Depends: ${shlibs:Depends}, ${misc:Depends}, lib32sm6 (= ${Source-Version}), x11proto-core-dev, lib32ice-dev, lib32c-dev, libsm-dev (= ${Source-Version})
+Pre-Depends: x11-common (>= 1:7.0.0)
+Description: X11 Inter-Client Exchange library (development headers)
+ This package provides the main interface to the X11 Session Management
+ library, which allows for applications to both manage sessions, and make use
+ of session managers to save and restore their state for later use.
+ .
+ This package contains the development headers for the library found in libsm6.
+ 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/SM' at
+ :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg
+ .
+ This package supports the 32-bit ABI variant of your system's architecture.
diff -Nur libsm-1.0.1.old/debian/lib32sm6.install libsm-1.0.1/debian/lib32sm6.install
--- libsm-1.0.1.old/debian/lib32sm6.install	1970-01-01 01:00:00.000000000 +0100
+++ libsm-1.0.1/debian/lib32sm6.install	2006-08-22 17:09:16.000000000 +0200
@@ -0,0 +1 @@
+emul/ia32-linux/usr/lib/libSM.so.6*
diff -Nur libsm-1.0.1.old/debian/lib32sm-dev.install libsm-1.0.1/debian/lib32sm-dev.install
--- libsm-1.0.1.old/debian/lib32sm-dev.install	1970-01-01 01:00:00.000000000 +0100
+++ libsm-1.0.1/debian/lib32sm-dev.install	2006-08-22 17:09:54.000000000 +0200
@@ -0,0 +1,3 @@
+emul/ia32-linux/usr/lib/libSM.a
+emul/ia32-linux/usr/lib/libSM.so
+emul/ia32-linux/usr/lib/pkgconfig/sm.pc
Binary files libsm-1.0.1.old/debian/libxau6-dbg/usr/lib/debug/emul/ia32-linux/usr/lib/libSM.so.6.0.0 and libsm-1.0.1/debian/libxau6-dbg/usr/lib/debug/emul/ia32-linux/usr/lib/libSM.so.6.0.0 differ
Binary files libsm-1.0.1.old/debian/libxau6-dbg/usr/lib/debug/usr/lib/libSM.so.6.0.0 and libsm-1.0.1/debian/libxau6-dbg/usr/lib/debug/usr/lib/libSM.so.6.0.0 differ
diff -Nur libsm-1.0.1.old/debian/rules libsm-1.0.1/debian/rules
--- libsm-1.0.1.old/debian/rules	2006-08-21 20:06:06.000000000 +0200
+++ libsm-1.0.1/debian/rules	2006-08-22 17:12:33.000000000 +0200
@@ -25,12 +25,12 @@
 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)
-endif
 
+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
 
 build: build-stamp
 build-stamp:
@@ -40,9 +40,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))
+	mkdir obj-$(build32-target)
+	cd obj-$(build32-target) && \
+	../configure --prefix=/usr --mandir=\$${prefix}/share/man \
+	             --infodir=\$${prefix}/share/info $(confflags) \
+	             --build=$(DEB_BUILD_GNU_TYPE) --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:
@@ -65,6 +76,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
@@ -79,7 +93,7 @@
 	dh_compress
 	dh_fixperms
 	dh_makeshlibs
-	dh_shlibdeps
+	dh_shlibdeps -l$(lib32):$(usr_lib32)
 	dh_installdeb
 	dh_gencontrol
 	dh_md5sums

Reply to: