Hi,

Here's updated patch for multiarch conversion of python2.7. This one
actually manages to build the package(s) and survives the smoketest
of apt-get dist-upgrade and loading the renamed modules still works.

I will be still testing more, ie, that building reverse deps still work
and it is actually possible to use python on multiarch setups.

Riku
diff -u python2.7-2.7.3/debian/rules python2.7-2.7.3/debian/rules
--- python2.7-2.7.3/debian/rules
+++ python2.7-2.7.3/debian/rules
@@ -15,6 +15,7 @@
 DEB_HOST_ARCH		?= $(call vafilt,$(DPKG_VARS),DEB_HOST_ARCH)
 DEB_HOST_ARCH_BITS	?= $(call vafilt,$(DPKG_VARS),DEB_HOST_ARCH_BITS)
 DEB_HOST_ARCH_OS	?= $(call vafilt,$(DPKG_VARS),DEB_HOST_ARCH_OS)
+DEB_HOST_MULTIARCH	?= $(call vafilt,$(DPKG_VARS),DEB_HOST_MULTIARCH)
 
 changelog_values := $(shell dpkg-parsechangelog \
 			| awk '/^(Version|Source):/ {print $$2}')
@@ -163,6 +164,11 @@
 p_doc	:= $(PVER)-doc
 p_dbg	:= $(PVER)-dbg
 
+p_lbase	:= lib$(PVER)-stdlib
+p_lmin	:= lib$(PVER)-minimal
+p_ldev	:= lib$(PVER)-dev
+p_ldbg	:= lib$(PVER)-dbg
+
 d_base	:= debian/$(p_base)
 d_min	:= debian/$(p_min)
 d_lib	:= debian/$(p_lib)
@@ -174,6 +180,11 @@
 d_doc	:= debian/$(p_doc)
 d_dbg	:= debian/$(p_dbg)
 
+d_lbase	:= debian/$(p_lbase)
+d_lmin	:= debian/$(p_lmin)
+d_ldev	:= debian/$(p_ldev)
+d_ldbg	:= debian/$(p_ldbg)
+
 build-arch: stamps/stamp-build
 build-indep: stamps/stamp-build-doc
 build: build-arch
@@ -585,6 +596,7 @@
 	rm -rf $(buildd_static) $(buildd_shared) $(buildd_debug) $(buildd_shdebug)
 	find -name '*.py[co]' | xargs -r rm -f
 	rm -f Lib/lib2to3/*.pickle
+	rm -rf Lib/plat-$(DEB_HOST_MULTIARCH)
 	rm -rf locales
 	rm -rf $(d)-dbg
 
@@ -645,6 +657,15 @@
 
 	test -f $(d)/usr/lib/python$(VER)/lib-dynload/_bsddb.so
 
+	for i in $(d)/$(scriptdir)/lib-dynload/*.so; do \
+	  b=$$(basename $$i .so); \
+	  d=$${b}.$(DEB_HOST_MULTIARCH).so; \
+	  mv $$i $(d)/$(scriptdir)/lib-dynload/$$d; \
+	done
+
+
+	mv $(d)/usr/lib/libpython*.a $(d)/usr/lib/$(DEB_HOST_MULTIARCH)/
+
 	mv $(d)/usr/lib/python$(VER)/site-packages \
 		$(d)/usr/lib/python$(VER)/dist-packages
 
@@ -689,16 +710,21 @@
 		$(d)/$(scriptdir)/lib-dynload/Python-$(VER).egg-info
 
 	dh_installdirs -p$(p_lib) \
-		$(scriptdir)/config \
+		usr/lib/$(DEB_HOST_MULTIARCH) \
+		$(scriptdir)/config-$(DEB_HOST_MULTIARCH) \
 		usr/share/doc
 	: # install the shared library
-	cp -p $(buildd_shared)/libpython$(VER).so.1.0 $(d_lib)/usr/lib/
-	ln -sf libpython$(VER).so.1.0 $(d_lib)/usr/lib/libpython$(VER).so.1
-	ln -sf ../../libpython$(VER).so.1 \
-		$(d_lib)/$(scriptdir)/config/libpython$(VER).so
+	cp -p $(buildd_shared)/libpython$(VER).so.1.0 \
+		$(d_lib)/usr/lib/$(DEB_HOST_MULTIARCH)/
+	dh_link -p$(p_lib) \
+	    /usr/lib/$(DEB_HOST_MULTIARCH)/libpython$(VER).so.1.0 \
+		/usr/lib/$(DEB_HOST_MULTIARCH)/libpython$(VER).so.1 \
+	    /usr/lib/$(DEB_HOST_MULTIARCH)/libpython$(VER).so \
+		/$(scriptdir)/config-$(DEB_HOST_MULTIARCH)/libpython$(VER).so
+
 	ln -sf $(p_base) $(d_lib)/usr/share/doc/$(p_lib)
 
-	ln -sf libpython$(VER).so.1 $(d)/usr/lib/libpython$(VER).so
+	ln -sf libpython$(VER).so.1 $(d)/usr/lib/$(DEB_HOST_MULTIARCH)/libpython$(VER).so
 
 ifeq ($(with_interp),shared)
 	: # install the statically linked runtime
@@ -713,57 +739,81 @@
 	sed -e '/^OPT/s,-O3,-O2,' \
 	    -e 's/$(LTO_CFLAGS)//g' \
 	    -e 's,^RUNSHARED *=.*,RUNSHARED=,' \
-		build-shared/Makefile > $(d)/$(scriptdir)/config/Makefile
+		build-shared/Makefile > $(d)/$(scriptdir)/config-$(DEB_HOST_MULTIARCH)/Makefile
 
-	: # Move the binary and the minimal libraries into $(p_min).
-	dh_installdirs -p$(p_min) \
+	: # Move the binary and the minimal libraries into $(p_lmin).
+	dh_installdirs -p$(p_lmin) \
 		etc/$(PVER) \
 		usr/bin \
 		usr/include/$(PVER) \
 		usr/share/man/man1 \
 		$(scriptdir)/lib-dynload \
-		$(scriptdir)/config
-	DH_COMPAT=2 dh_movefiles -p$(p_min) --sourcedir=$(d) \
-		usr/bin/python$(VER) \
-		usr/share/man/man1/python$(VER).1 \
+		$(scriptdir)/config-$(DEB_HOST_MULTIARCH)
+	DH_COMPAT=2 dh_movefiles -p$(p_lmin) --sourcedir=$(d) \
 		$(foreach i,$(MIN_MODS),$(scriptdir)/$(i).py) \
 		$(foreach i,$(MIN_PACKAGES),$(scriptdir)/$(i)) \
 		$(foreach i,$(MIN_ENCODINGS),$(scriptdir)/$(i)) \
-		$(scriptdir)/config/Makefile \
-		usr/include/$(PVER)/pyconfig.h \
+		$(scriptdir)/config-$(DEB_HOST_MULTIARCH)/Makefile \
+		usr/include/$(DEB_HOST_MULTIARCH)/$(PVER)/pyconfig.h \
 		$(scriptdir)/site.py \
 		$(shell cd $(d); for i in $(MIN_EXTS); do \
 			test -e $(scriptdir)/lib-dynload/$$i.so \
 			  && echo $(scriptdir)/lib-dynload/$$i.so; \
 		  done; true)
 
+	: # Move the binary and the minimal libraries into $(p_min).
+	dh_installdirs -p$(p_min) \
+		usr/bin \
+		usr/share/man/man1
+	DH_COMPAT=2 dh_movefiles -p$(p_min) --sourcedir=$(d) \
+		usr/bin/python$(VER) \
+		usr/share/man/man1/python$(VER).1
+
 	: # Install sitecustomize.py.
-	cp -p debian/sitecustomize.py $(d_min)/etc/$(PVER)/
-	patch --no-backup -d $(d_min)/$(scriptdir) < debian/patches/site-builddir.diff
-	dh_link -p$(p_min) /etc/$(PVER)/sitecustomize.py \
+	cp -p debian/sitecustomize.py $(d_lmin)/etc/$(PVER)/
+	patch --no-backup -d $(d_lmin)/$(scriptdir) < debian/patches/site-builddir.diff
+	dh_link -p$(p_lmin) /etc/$(PVER)/sitecustomize.py \
 		/$(scriptdir)/sitecustomize.py
 
-	: # Move the static library and the header files into $(p_dev).
+	: # Move the static library and the header files into $(p_ldev).
 #	mv $(d)/usr/share/include/python$(VER)/* $(d)/usr/include/python$(VER)/.
 #	rm -rf $(d)/usr/share/include
-	dh_installdirs -p$(p_dev) \
-		usr/share/doc/python$(VER) \
+
+	cp $(d)/usr/bin/python$(VER)-config $(d)/usr/bin/$(DEB_HOST_MULTIARCH)-python-config
+	dh_installdirs -p$(p_ldev) \
+		usr/bin \
 		$(scriptdir) \
-		$(scriptdir)/doc/html \
 		usr/include \
+		usr/share/man/man1
+
+	DH_COMPAT=2 dh_movefiles -p$(p_ldev) --sourcedir=$(d) \
+		usr/bin/$(DEB_HOST_MULTIARCH)-python-config \
+		usr/lib/python$(VER)/config-$(DEB_HOST_MULTIARCH) \
+		usr/include \
+		usr/lib/$(DEB_HOST_MULTIARCH)/libpython$(VER).{a,so} \
+		usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/python-$(VER)*.pc
+
+	dh_link -p$(p_ldev) \
+		/usr/lib/$(PVER)/config-$(DEB_HOST_MULTIARCH)/libpython$(VER).a \
+		/usr/lib/$(DEB_HOST_MULTIARCH)/libpython$(VER).a
+
+	cp -p $(buildd_shared)/libpython$(VER)-pic.a \
+		$(d_ldev)/usr/lib/python$(VER)/config-$(DEB_HOST_MULTIARCH)/
+
+	: # Move the static library and the header files into $(p_dev).
+	dh_installdirs -p$(p_dev) \
+		usr/share/doc/python$(VER)/$(DEB_HOST_MULTIARCH) \
 		usr/share/man/man1 \
-		usr/lib
+		$(scriptdir) \
+		$(scriptdir)/doc/html
+
 	cp -p Misc/HISTORY Misc/README.valgrind Misc/gdbinit \
 		debian/README.maintainers \
-		debian/test_results $(buildd_static)/pybench.log \
-	    $(d_dev)/usr/share/doc/python$(VER)/
+		$(d_dev)/usr/share/doc/python$(VER)/
+	cp -p	debian/test_results $(buildd_static)/pybench.log \
+		$(d_dev)/usr/share/doc/python$(VER)/$(DEB_HOST_MULTIARCH)/
 
 	DH_COMPAT=2 dh_movefiles -p$(p_dev) --sourcedir=$(d) \
-		usr/lib/python$(VER)/config \
-		usr/include/python$(VER) \
-		usr/lib/libpython$(VER).so \
-		usr/lib/libpython$(VER).a \
-		usr/lib/pkgconfig/python-$(VER).pc \
 		usr/bin/python$(VER)-config \
 		usr/lib/python$(VER)/distutils/command/wininst-*.exe
 
@@ -772,8 +822,6 @@
 
 	cp -p debian/python-config.1 \
 		$(d_dev)/usr/share/man/man1/python$(VER)-config.1
-	cp -p $(buildd_shared)/libpython$(VER)-pic.a \
-		$(d_dev)/usr/lib/python$(VER)/config/
 
 ifeq ($(with_tk),yes)
 	: # Move the Tkinter files into $(p_tk).
@@ -882,6 +930,12 @@
 	cp -p debian/README.Tk $(d_tk)/usr/share/doc/$(p_tk)/
 endif
 
+	: # library files into $(p_lbase)
+	dh_installdirs -p$(p_lbase) \
+		usr/lib
+	dh_movefiles -p$(p_lbase) \
+		usr/lib/python$(VER)
+
 	: # The rest goes into $(p_base)
 	mkdir -p $(d)/usr/lib/python$(VER)/dist-packages
 	(cd $(d) && tar cf - .) | (cd $(d_base) && tar xpf -)
@@ -915,15 +969,39 @@
 	: # install debug package
 	rm -rf $(d)-dbg
 	$(MAKE) -C $(buildd_debug) install DESTDIR=$(CURDIR)/$(d)-dbg
+	mv $(d)-dbg/usr/lib/libpython*.a $(d)-dbg/usr/lib/$(DEB_HOST_MULTIARCH)/
 	mv $(d)-dbg/$(scriptdir)/_sysconfigdata.py \
 		$(d)-dbg/$(scriptdir)/_sysconfigdata_d.py
-	dh_installdirs -p$(p_dbg) \
+	dh_installdirs -p$(p_ldbg) \
 		usr/bin \
 		usr/share/man/man1 \
 		$(scriptdir)/lib-dynload \
+		$(scriptdir)/plat-$(DEB_HOST_MULTIARCH) \
 		usr/include/$(PVER)_d \
-		usr/lib/pkgconfig \
+		usr/include/$(DEB_HOST_MULTIARCH)/$(PVER)_d \
+		usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig \
+
+	cp -p $(d)-dbg/$(scriptdir)/lib-dynload/*.so \
+		$(d_ldbg)/$(scriptdir)/lib-dynload/
+	cp -p $(buildd_shdebug)/libpython$(VER)_d.so.1.0 \
+		$(d_ldbg)/usr/lib/$(DEB_HOST_MULTIARCH)/
+	dh_link -p$(p_ldbg) \
+		/usr/lib/$(DEB_HOST_MULTIARCH)/libpython$(VER)_d.so.1.0 \
+		/usr/lib/$(DEB_HOST_MULTIARCH)/libpython$(VER)_d.so.1 \
+		/usr/lib/$(DEB_HOST_MULTIARCH)/libpython$(VER)_d.so.1 \
+		/usr/lib/$(DEB_HOST_MULTIARCH)/libpython$(VER)_d.so
+	sed -e '/^Libs:/s,-lpython$(VER),-lpython$(VER)_d,' \
+		-e '/^Cflags:/s,python$(VER),python$(VER)_d,' \
+		$(d)-dbg/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/python-$(VER).pc \
+		> $(d_ldbg)/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/python-$(VER)-dbg.pc
+
+
+	dh_installdirs -p$(p_dbg) \
+		usr/bin \
+		$(scriptdir)/lib-dynload \
+		usr/share/man/man1 \
 		usr/share/doc/$(p_base)
+
 	cp -p Misc/SpecialBuilds.txt $(d_dbg)/usr/share/doc/$(p_base)/
 	cp -p debian/$(PVER)-dbg.README.Debian \
 		$(d_dbg)/usr/share/doc/$(p_base)/README.debug
@@ -932,41 +1010,35 @@
 		$(d)-dbg/usr/bin/$(PVER)-config \
 		> $(d_dbg)/usr/bin/$(PVER)-dbg-config
 	chmod 755 $(d_dbg)/usr/bin/$(PVER)-dbg-config
-	cp -p $(buildd_debug)/build/lib*/*_d.so \
+#	cp -p $(buildd_debug)/build/lib*/*_d.so \
 		$(d_dbg)/$(scriptdir)/lib-dynload/
 	cp -p $(d)-dbg/$(scriptdir)/_sysconfigdata_d.py \
-		$(d_dbg)/$(scriptdir)/
-	cp -p $(buildd_shdebug)/libpython$(VER)_d.so.1.0 $(d_dbg)/usr/lib/
-	ln -sf libpython$(VER)_d.so.1.0 $(d_dbg)/usr/lib/libpython$(VER)_d.so.1
-	ln -sf libpython$(VER)_d.so.1 $(d_dbg)/usr/lib/libpython$(VER)_d.so
-	sed -e '/^Libs:/s,-lpython$(VER),-lpython$(VER)_d,' \
-	  -e '/^Cflags:/s,python$(VER),python$(VER)_d,' \
-	  $(d)-dbg/usr/lib/pkgconfig/python-$(VER).pc \
-	  > $(d_dbg)/usr/lib/pkgconfig/python-$(VER)-dbg.pc
+		$(d_ldbg)/$(scriptdir)/plat-$(DEB_HOST_MULTIARCH)/
 ifneq ($(with_gdbm),yes)
-	rm -f $(d_dbg)/$(scriptdir)/lib-dynload/gdbm_d.so
-	rm -f $(d_dbg)/usr/lib/debug/$(scriptdir)/lib-dynload/gdbm.so
+	rm -f $(d_ldbg)/$(scriptdir)/lib-dynload/gdbm_d.so
+	rm -f $(d_dbg)/usr/lib/debug/$(scriptdir)/lib-dynload/gdbm.$(DEB_HOST_MULTIARCH).so
 endif
 ifneq ($(with_tk),yes)
-	rm -f $(d_dbg)/$(scriptdir)/lib-dynload/_tkinter_d.so
-	rm -f $(d_dbg)/usr/lib/debug/$(scriptdir)/lib-dynload/_tkinter.so
+	rm -f $(d_ldbg)/$(scriptdir)/lib-dynload/_tkinter_d.so
+	rm -f $(d_dbg)/usr/lib/debug/$(scriptdir)/lib-dynload/_tkinter.$(DEB_HOST_MULTIARCH).so
 endif
 #	rm -f $(d_dbg)/$(scriptdir)/lib-dynload/_bsddb_d.so
 
-	cp -a $(d)-dbg/$(scriptdir)/config_d $(d_dbg)/$(scriptdir)/
+	cp -a $(d)-dbg/$(scriptdir)/config-$(DEB_HOST_MULTIARCH)_d \
+		 $(d_ldbg)/$(scriptdir)/
 	ln -sf ../../libpython$(VER)_d.so \
-		$(d_dbg)/$(scriptdir)/config_d/libpython$(VER)_d.so
+		$(d_ldbg)/$(scriptdir)/config-$(DEB_HOST_MULTIARCH)_d/libpython$(VER)_d.so
 	ln -sf libpython$(VER)_d.so \
-		$(d_dbg)/$(scriptdir)/config_d/libpython$(VER).so
+		$(d_ldbg)/$(scriptdir)/config-$(DEB_HOST_MULTIARCH)_d/libpython$(VER).so
 	ln -sf libpython$(VER)_d.a \
-		$(d_dbg)/$(scriptdir)/config_d/libpython$(VER).a
+		$(d_ldbg)/$(scriptdir)/config-$(DEB_HOST_MULTIARCH)_d/libpython$(VER).a
 
-	for i in $(d_dev)/usr/include/$(PVER)/*; do \
+	for i in $(d_ldev)/usr/include/$(PVER)/*; do \
 	  i=$$(basename $$i); \
 	  case $$i in pyconfig.h) continue; esac; \
-	  ln -sf ../$(PVER)/$$i $(d_dbg)/usr/include/$(PVER)_d/$$i; \
+	  ln -sf ../$(PVER)/$$i $(d_ldbg)/usr/include/$(PVER)_d/$$i; \
 	done
-	cp -p $(buildd_debug)/pyconfig.h $(d_dbg)/usr/include/$(PVER)_d/
+	cp -p $(buildd_debug)/pyconfig.h $(d_ldbg)/usr/include/$(DEB_HOST_MULTIARCH)/$(PVER)_d/
 	ln -sf $(PVER).1.gz $(d_dbg)/usr/share/man/man1/$(PVER)-dbg.1.gz
 	ln -sf $(PVER)-config.1.gz $(d_dbg)/usr/share/man/man1/$(PVER)-dbg-config.1.gz
 
@@ -1039,16 +1111,24 @@
 	-dh_icons -a || dh_iconcache -a
 #	dh_installmime -a
 	dh_installchangelogs -a
-	for i in $(p_dev) $(p_dbg) $(p_lib); do \
+	for i in $(p_dev) $(p_dbg); do \
 	  rm -rf debian/$$i/usr/share/doc/$$i; \
 	  ln -s $(p_base) debian/$$i/usr/share/doc/$$i; \
 	done
+	for i in $(p_lbase); do \
+	  rm -rf debian/$$i/usr/share/doc/$$i; \
+	  ln -s $(p_lmin) debian/$$i/usr/share/doc/$$i; \
+	done
+	for i in $(p_ldev) $(p_ldbg) $(p_lib); do \
+	  rm -rf debian/$$i/usr/share/doc/$$i; \
+	  ln -s $(p_lbase) debian/$$i/usr/share/doc/$$i; \
+	done
 	-find debian ! -perm -200 -print -exec chmod +w {} \;
 ifneq ($(with_tk),yes)
-	rm -f $(d_base)/$(scriptdir)/lib-dynload/_tkinter.so
+	rm -f $(d_lbase)/$(scriptdir)/lib-dynload/_tkinter.$(DEB_HOST_MULTIARCH).so
 endif
 ifneq ($(with_gdbm),yes)
-	rm -f $(d_base)/$(scriptdir)/lib-dynload/gdbm.so
+	rm -f $(d_lbase)/$(scriptdir)/lib-dynload/gdbm.$(DEB_HOST_MULTIARCH).so
 endif
 	dh_strip -a -N$(p_dbg) -Xdebug -Xdbg --dbg-package=$(p_dbg)
 	cp Tools/gdb/libpython.py $(d_dbg)/usr/lib/debug/usr/bin/$(PVER)-gdb.py
@@ -1070,11 +1150,11 @@
 	done
 
 	dh_makeshlibs -p$(p_lib) -V '$(p_lib)'
-	dh_makeshlibs -p$(p_dbg) -V '$(p_dbg)'
+	dh_makeshlibs -p$(p_ldbg) -V '$(p_ldbg)'
 # don't include the following symbols, found in extensions
 # which either can be built as builtin or extension.
 	sed -ri '/^ (_check_|asdl_|fast_save_|init)/d' \
-	  $(d_lib)/DEBIAN/symbols $(d_dbg)/DEBIAN/symbols
+	  $(d_lib)/DEBIAN/symbols $(d_ldbg)/DEBIAN/symbols
 	dh_installdeb -a
 	dh_shlibdeps -a
 	dh_gencontrol -a
diff -u python2.7-2.7.3/debian/control.in python2.7-2.7.3/debian/control.in
--- python2.7-2.7.3/debian/control.in
+++ python2.7-2.7.3/debian/control.in
@@ -23,36 +23,69 @@
 Package: @PVER@
 Architecture: any
 Priority: @PRIO@
-Depends: @PVER@-minimal (= ${binary:Version}), mime-support, ${shlibs:Depends}, ${misc:Depends}
+Depends: @PVER@-minimal (= ${binary:Version}), lib@PVER@-stdlib (= ${binary:Version}), mime-support, ${shlibs:Depends}, ${misc:Depends}
 Suggests: @PVER@-doc, binutils
-Provides: @PVER@-cjkcodecs, @PVER@-ctypes, @PVER@-elementtree, @PVER@-celementtree, @PVER@-wsgiref, @PVER@-profiler, @PVER@-argparse, python-argparse
 Conflicts: python-profiler (<= 2.7.1-2)
 Breaks: python-virtualenv (<< 1.7.1.2-2~), vim-nox (<< 2:7.3.547-4), vim-gtk (<< 2:7.3.547-4), vim-gnome (<< 2:7.3.547-4), vim-athena (<< 2:7.3.547-4)
 Replaces: python-profiler (<= 2.7.1-2)
+Multi-Arch: foreign
+Description: Interactive high-level object-oriented language (version @VER@)
+ Version @VER@ of the high-level, interactive object oriented language,
+ includes an extensive class library with lots of goodies for
+ network programming, system administration, sounds and graphics.
+
+Package: lib@PVER@-stdlib
+Architecture: any
+Multi-Arch: same
+Priority: @PRIO@
+Pre-Depends: multiarch-support
+Depends: lib@PVER@-minimal (= ${binary:Version}), mime-support, ${shlibs:Depends}, ${misc:Depends}
+Suggests: @PVER@-profiler
+Provides: @PVER@-cjkcodecs, @PVER@-ctypes, @PVER@-elementtree, @PVER@-celementtree, @PVER@-wsgiref, @PVER@-profiler, @PVER@-argparse, python-argparse
+Replaces: @PVER@ (<< 2.7.3-6)
 Description: Interactive high-level object-oriented language (version @VER@)
  Version @VER@ of the high-level, interactive object oriented language,
  includes an extensive class library with lots of goodies for
  network programming, system administration, sounds and graphics.
+ .
+ This package contains the standard library. It is normally not
+ used on it's own, but as a dependency of @PVER@.
 
 Package: @PVER@-minimal
 Architecture: any
 Priority: @MINPRIO@
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Depends: lib@PVER@-minimal (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
 Recommends: @PVER@
 Suggests: binfmt-support
 Replaces: @PVER@ (<< 2.7.1~rc1-2~)
 Conflicts: binfmt-support (<< 1.1.2)
+Multi-Arch: foreign
 Description: Minimal subset of the Python language (version @VER@)
  This package contains the interpreter and some essential modules.  It can
  be used in the boot process for some basic tasks.
  See /usr/share/doc/@PVER@-minimal/README.Debian for a list of the modules
  contained in this package.
 
+Package: lib@PVER@-minimal
+Architecture: any
+Multi-Arch: same
+Priority: @MINPRIO@
+Pre-Depends: multiarch-support
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Recommends: lib@PVER@-stdlib
+Replaces: @PVER@ (<< 2.7.1~rc1-2~), @PVER@-minimal (<< 2.7.3-6)
+Conflicts: binfmt-support (<< 1.1.2)
+Description: Minimal subset of the Python language (version @VER@)
+ This package contains some essential modules. It is normally not
+ used on it's own, but as a dependency of @PVER@-minimal.
+
 Package: lib@PVER@
 Architecture: any
+Multi-Arch: same
 Section: libs
-Priority: optional
-Depends: @PVER@ (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Priority: @PRIO@
+Pre-Depends: multiarch-support
+Depends: lib@PVER@-stdlib (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
 Replaces: @PVER@ (<< 2.6)
 Description: Shared Python runtime library (version @VER@)
  Version @VER@ of the high-level, interactive object oriented language,
@@ -71,7 +104,7 @@
 
 Package: @PVER@-dev
 Architecture: any
-Depends: @PVER@ (= ${binary:Version}), lib@PVER@ (= ${binary:Version}), libexpat1-dev, libssl-dev, ${shlibs:Depends}, ${misc:Depends}
+Depends: @PVER@ (= ${binary:Version}), lib@PVER@-dev (= ${binary:Version}), lib@PVER@ (= ${binary:Version}), libexpat1-dev, libssl-dev, ${shlibs:Depends}, ${misc:Depends}
 Recommends: libc6-dev | libc-dev
 Replaces: @PVER@ (<< 2.7-3)
 Description: Header files and a static library for Python (v@VER@)
@@ -81,6 +114,24 @@
  .
  Maintainers of Python packages should read README.maintainers.
 
+Package: lib@PVER@-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Pre-Depends: multiarch-support
+Depends: lib@PVER@-stdlib (= ${binary:Version}), lib@PVER@ (= ${binary:Version}), libssl-dev, libexpat1-dev, ${shlibs:Depends}, ${misc:Depends}
+Replaces: @PVER@ (<< 2.7-3), @PVER@-dev (<< 2.7.3-6), @PVER@-minimal (<< 2.7.3-6)
+Recommends: libc6-dev | libc-dev
+Description: Header files and a static library for Python (v@VER@)
+ Header files, a static library and development tools for building
+ Python (v@VER@) modules, extending the Python interpreter or embedding
+ Python (v@VER@) in applications.
+ .
+ Maintainers of Python packages should read README.maintainers.
+ .
+ This package contains development files. It is normally not
+ used on it's own, but as a dependency of @PVER@-dev.
+
 Package: idle-@PVER@
 Architecture: all
 Depends: @PVER@, python-tk (>= 2.6~a3), @PVER@-tk, ${misc:Depends}
@@ -118,5 +169,23 @@
-Depends: @PVER@ (>= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Depends: @PVER@ (= ${binary:Version}), lib@PVER@-dbg (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
 Suggests: python-gdbm-dbg, python-tk-dbg
+Multi-Arch: foreign
 Description: Debug Build of the Python Interpreter (version @VER@)
  Python interpreter configured with --pydebug. Dynamically loaded modules are
  searched in /usr/lib/@PVER@/lib-dynload/debug first.
+
+Package: lib@PVER@-dbg
+Section: debug
+Architecture: any
+Multi-Arch: same
+Priority: extra
+Pre-Depends: multiarch-support
+Depends: lib@PVER@-stdlib (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, python
+Suggests: @PVER@-gdbm-dbg, @PVER@-tk-dbg
+Replaces: @PVER@-dbg (<< 2.7.3-6)
+Description: Debug Build of the Python Interpreter (version @VER@)
+ Python interpreter configured with --pydebug. Dynamically loaded modules are
+ searched in /usr/lib/@PVER@/lib-dynload/debug first.
+ .
+ This package contains the library for the debug interpreter. It is normally
+ not used on it's own, but as a dependency of @PVER@.
+
diff -u python2.7-2.7.3/debian/changelog python2.7-2.7.3/debian/changelog
--- python2.7-2.7.3/debian/changelog
+++ python2.7-2.7.3/debian/changelog
@@ -1,3 +1,10 @@
+python2.7 (2.7.3-6linaro1) UNRELEASED; urgency=low
+
+  * Backport python Multiarch changes from 3.3 packaging
+    - Thanks to Mathias Klose and Wookey
+
+ -- Riku Voipio <r...@debian.org>  Tue, 11 Sep 2012 13:00:14 +0000
+
 python2.7 (2.7.3-5) unstable; urgency=low
 
   * Enable verbose build for the sharedmods target.
diff -u python2.7-2.7.3/debian/patches/series.in python2.7-2.7.3/debian/patches/series.in
--- python2.7-2.7.3/debian/patches/series.in
+++ python2.7-2.7.3/debian/patches/series.in
@@ -69,0 +70 @@
+multiarch.diff
only in patch2:
unchanged:
--- python2.7-2.7.3.orig/debian/libPVER-dbg.symbols.in
+++ python2.7-2.7.3/debian/libPVER-dbg.symbols.in
@@ -0,0 +1,38 @@
+libpython@v...@dm.so.1.0 libpython@VER@-dbg #MINVER#
+#include "libpython.symbols"
+ _PyDict_Dummy@Base @VER@
+ _PyMem_DebugFree@Base @VER@
+ _PyMem_DebugMalloc@Base @VER@
+ _PyMem_DebugRealloc@Base @VER@
+ _PyObject_DebugCheckAddress@Base @VER@
+ _PyObject_DebugCheckAddressApi@Base @VER@
+ _PyObject_DebugDumpAddress@Base @VER@
+ _PyObject_DebugFree@Base @VER@
+ _PyObject_DebugFreeApi@Base @VER@
+ _PyObject_DebugMalloc@Base @VER@
+ _PyObject_DebugMallocApi@Base @VER@
+ _PyObject_DebugMallocStats@Base @VER@
+ _PyObject_DebugRealloc@Base @VER@
+ _PyObject_DebugReallocApi@Base @VER@
+ _PySet_Dummy@Base @VER@
+ _PyUnicode_CheckConsistency@Base @VER@
+ _PyUnicode_Dump@Base @VER@
+ _PyUnicode_compact_data@Base @VER@
+ _PyUnicode_data@Base @VER@
+ _PyUnicode_utf8@Base @VER@
+ _Py_AddToAllObjects@Base @VER@
+ _Py_Dealloc@Base @VER@
+ _Py_ForgetReference@Base @VER@
+ _Py_GetObjects@Base @VER@
+ _Py_GetRefTotal@Base @VER@
+ _Py_HashSecret_Initialized@Base @VER@
+ _Py_NegativeRefcount@Base @VER@
+ _Py_NewReference@Base @VER@
+ _Py_PrintReferenceAddresses@Base @VER@
+ _Py_PrintReferences@Base @VER@
+ _Py_RefTotal@Base @VER@
+ _Py_dumptree@Base @VER@
+ _Py_printtree@Base @VER@
+ _Py_showtree@Base @VER@
+ _Py_tok_dump@Base @VER@
+ PyModule_Create2TraceRefs@Base @VER@
only in patch2:
unchanged:
--- python2.7-2.7.3.orig/debian/libPVER-stdlib.overrides.in
+++ python2.7-2.7.3/debian/libPVER-stdlib.overrides.in
@@ -0,0 +1,12 @@
+# idlelib images
+lib@PVER@-stdlib binary: image-file-in-usr-lib
+
+# license file referred by the standard library
+lib@PVER@-stdlib binary: extra-license-file
+
+# template files
+lib@PVER@-stdlib binary: interpreter-not-absolute usr/lib/python3.3/venv/scripts/posix/pydoc #!__VENV_PYTHON__
+lib@PVER@-stdlib binary: unusual-interpreter usr/lib/python3.3/venv/scripts/posix/pydoc #!__VENV_PYTHON__
+
+# the split is the reason for that
+lib@PVER@-stdlib binary: python-script-but-no-python-dep
only in patch2:
unchanged:
--- python2.7-2.7.3.orig/debian/libPVER-dev.overrides.in
+++ python2.7-2.7.3/debian/libPVER-dev.overrides.in
@@ -0,0 +1 @@
+lib@PVER@-dev binary: python-script-but-no-python-dep
only in patch2:
unchanged:
--- python2.7-2.7.3.orig/debian/libPVER-minimal.postinst.in
+++ python2.7-2.7.3/debian/libPVER-minimal.postinst.in
@@ -0,0 +1,13 @@
+#! /bin/sh
+
+set -e
+
+if [ ! -f /etc/@PVER@/sitecustomize.py ]; then
+    cat <<-EOF
+	# Empty sitecustomize.py to avoid a dangling symlink
+EOF
+fi
+
+#DEBHELPER#
+
+exit 0
only in patch2:
unchanged:
--- python2.7-2.7.3.orig/debian/libPVER-minimal.overrides.in
+++ python2.7-2.7.3/debian/libPVER-minimal.overrides.in
@@ -0,0 +1 @@
+lib@PVER@-minimal binary: python-script-but-no-python-dep
only in patch2:
unchanged:
--- python2.7-2.7.3.orig/debian/patches/multiarch.diff
+++ python2.7-2.7.3/debian/patches/multiarch.diff
@@ -0,0 +1,123 @@
+Index: python-multiarch/Lib/sysconfig.py
+===================================================================
+--- python-multiarch.orig/Lib/sysconfig.py	2012-09-10 08:41:28.000000000 +0000
++++ python-multiarch/Lib/sysconfig.py	2012-09-10 08:42:54.676828325 +0000
+@@ -12,7 +12,7 @@
+         'purelib': '{base}/lib/python{py_version_short}/site-packages',
+         'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
+         'include': '{base}/include/python{py_version_short}',
+-        'platinclude': '{platbase}/include/python{py_version_short}',
++        'platinclude': '{platbase}/include{multiarchsubdir}/python{py_version_short}',
+         'scripts': '{base}/bin',
+         'data': '{base}',
+         },
+@@ -494,6 +494,12 @@
+         # the init-function.
+         _CONFIG_VARS['userbase'] = _getuserbase()
+ 
++        multiarch = get_config_var('MULTIARCH')
++        if multiarch:
++            _CONFIG_VARS['multiarchsubdir'] = '/' + multiarch
++        else:
++            _CONFIG_VARS['multiarchsubdir'] = ''
++
+         if 'srcdir' not in _CONFIG_VARS:
+             _CONFIG_VARS['srcdir'] = _PROJECT_BASE
+ 
+Index: python-multiarch/Makefile.pre.in
+===================================================================
+--- python-multiarch.orig/Makefile.pre.in	2012-09-10 08:41:28.000000000 +0000
++++ python-multiarch/Makefile.pre.in	2012-09-10 08:42:54.676828325 +0000
+@@ -88,6 +88,9 @@
+ # Machine-dependent subdirectories
+ MACHDEP=	@MACHDEP@
+ 
++# Multiarch directory (may be empty)
++MULTIARCH=	@MULTIARCH@
++
+ # Install prefix for architecture-independent files
+ prefix=		@prefix@
+ 
+@@ -102,7 +105,7 @@
+ LIBDIR=		@libdir@
+ MANDIR=		@mandir@
+ INCLUDEDIR=	@includedir@
+-CONFINCLUDEDIR=	$(exec_prefix)/include
++CONFINCLUDEDIR=	$(exec_prefix)/include/$(MULTIARCH)
+ SCRIPTDIR=	$(prefix)/lib
+ 
+ # Detailed destination directories
+@@ -553,6 +556,10 @@
+ Modules/python.o: $(srcdir)/Modules/python.c
+ 	$(MAINCC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Modules/python.c
+ 
++Python/dynload_shlib.o: $(srcdir)/Python/dynload_shlib.c Makefile
++	$(CC) -c $(PY_CORE_CFLAGS) \
++		$(if $(MULTIARCH),-DMULTIARCH='"$(MULTIARCH)"') \
++		-o $@ $(srcdir)/Python/dynload_shlib.c
+ 
+ # Use a stamp file to prevent make -j invoking pgen twice
+ $(GRAMMAR_H) $(GRAMMAR_C): Parser/pgen.stamp
+@@ -861,7 +868,7 @@
+ 		$(DESTDIR)$(MANDIR)/man1/python$(VERSION).1
+ 
+ # Install the library
+-PLATDIR=	plat-$(MACHDEP)
++PLATDIR=	plat-$(MULTIARCH)
+ EXTRAPLATDIR= @EXTRAPLATDIR@
+ EXTRAMACHDEPPATH=@EXTRAMACHDEPPATH@
+ MACHDEPS=	$(PLATDIR) $(EXTRAPLATDIR)
+@@ -1009,10 +1016,10 @@
+ 
+ # Install the library and miscellaneous stuff needed for extending/embedding
+ # This goes into $(exec_prefix)$(DEBUG_EXT)
+-LIBPL=		$(LIBP)/config$(DEBUG_EXT)
++LIBPL=		$(LIBP)/config-$(MULTIARCH)$(DEBUG_EXT)
+ 
+ # pkgconfig directory
+-LIBPC=		$(LIBDIR)/pkgconfig
++LIBPC=		$(LIBDIR)/$(MULTIARCH)/pkgconfig
+ 
+ libainstall:	all python-config
+ 	@for i in $(LIBDIR) $(LIBP) $(LIBPL) $(LIBPC); \
+Index: python-multiarch/Modules/Setup.dist
+===================================================================
+--- python-multiarch.orig/Modules/Setup.dist	2012-09-10 08:41:22.000000000 +0000
++++ python-multiarch/Modules/Setup.dist	2012-09-10 08:42:54.676828325 +0000
+@@ -91,7 +91,7 @@
+ TESTPATH=
+ 
+ # Path components for machine- or system-dependent modules and shared libraries
+-MACHDEPPATH=:plat-$(MACHDEP)
++MACHDEPPATH=:plat-$(MULTIARCH)
+ EXTRAMACHDEPPATH=
+ 
+ # Path component for the Tkinter-related modules
+Index: python-multiarch/Python/dynload_shlib.c
+===================================================================
+--- python-multiarch.orig/Python/dynload_shlib.c	2012-09-10 08:41:17.000000000 +0000
++++ python-multiarch/Python/dynload_shlib.c	2012-09-10 08:42:54.676828325 +0000
+@@ -50,6 +50,9 @@
+     {"_d.so", "rb", C_EXTENSION},
+     {"module_d.so", "rb", C_EXTENSION},
+ #endif
++#ifdef MULTIARCH
++    {"." MULTIARCH ".so", "rb", C_EXTENSION},
++#endif
+     {".so", "rb", C_EXTENSION},
+     {"module.so", "rb", C_EXTENSION},
+ #endif
+Index: python-multiarch/configure.ac
+===================================================================
+--- python-multiarch.orig/configure.ac	2012-09-10 08:41:24.598038037 +0000
++++ python-multiarch/configure.ac	2012-09-10 08:43:55.783959386 +0000
+@@ -12,6 +12,9 @@
+ AC_CONFIG_SRCDIR([Include/object.h])
+ AC_CONFIG_HEADER(pyconfig.h)
+ 
++MULTIARCH=$(gcc --print-multiarch 2>/dev/null)
++AC_SUBST(MULTIARCH)
++
+ dnl Ensure that if prefix is specified, it does not end in a slash. If
+ dnl it does, we get path names containing '//' which is both ugly and
+ dnl can cause trouble.

Reply via email to