On Wed, Sep 12, 2012 at 05:58:22PM +0200, Jakub Wilk wrote:
> >+ #endif
> >++#ifdef MULTIARCH
> >++ {"." MULTIARCH ".so", "rb", C_EXTENSION},
> >++#endif
> >+ {".so", "rb", C_EXTENSION},
> >+ {"module.so", "rb", C_EXTENSION},
> >+ #endif
>
> What about loading extensions for the -dbg interpreter?
Added, although I'm not sure how interesting multiarch is for debug
packages.
> Python modules from the standard library are not byte-compiled anymore.
This affects speed rather than functionality, so will look at it later
> At least the following files (that are shipped in a M-A: same
> package) vary with architecture:
> /usr/lib/python2.7/lib-dynload/*_d.so
> /usr/lib/python2.7/_sysconfigdata_nd.py
> /usr/lib/python2.7/lib-dynload/_sysconfigdata.py
hopefully fixed
> /usr/lib/python2.7/lib2to3/*Grammar*.pickle
Seem to be only used by 2to3 app, so moved whole lib2to3 directory to python2.7
package
> These are broken symlinks:
>
> /usr/lib/python2.7/config-*_d/libpython2.7_d.so
> /usr/lib/python2.7/config-*_d/libpython2.7.so
> /usr/lib/libpython2.7.a
fixed
> libpython2.7-{minimal,stdlib} don't ship any shared libraries, so
> Pre-Depends on multiarch-support shouldn't be needed.
dropped.
> python2.7{,-minimal,-dbg} must not be "Multi-Arch: foreign".
I'll keep this now for my testings, it is trivial enough to remove
when needed.
> Apparently the patch reopens #684612.
> argparse.egg-info should be in libpython2.7-stdlib, not in python2.7.
Changed
Since you clearly know more about python than I do, do you have good
ideas howto verify that everything still works now that all the files
have been moved around? Even better if you want to test and finish the
patch yourself ;)
Riku
diff -u python2.7-2.7.3/debian/control python2.7-2.7.3/debian/control
--- python2.7-2.7.3/debian/control
+++ python2.7-2.7.3/debian/control
@@ -23,36 +23,67 @@
Package: python2.7
Architecture: any
Priority: optional
-Depends: python2.7-minimal (= ${binary:Version}), mime-support, ${shlibs:Depends}, ${misc:Depends}
+Depends: python2.7-minimal (= ${binary:Version}), libpython2.7-stdlib (= ${binary:Version}), mime-support, ${shlibs:Depends}, ${misc:Depends}
Suggests: python2.7-doc, binutils
-Provides: python2.7-cjkcodecs, python2.7-ctypes, python2.7-elementtree, python2.7-celementtree, python2.7-wsgiref, python2.7-profiler, python2.7-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 2.7)
+ Version 2.7 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: libpython2.7-stdlib
+Architecture: any
+Multi-Arch: same
+Priority: optional
+Depends: libpython2.7-minimal (= ${binary:Version}), mime-support, ${shlibs:Depends}, ${misc:Depends}
+Suggests: python2.7-profiler
+Provides: python2.7-cjkcodecs, python2.7-ctypes, python2.7-elementtree, python2.7-celementtree, python2.7-wsgiref, python2.7-profiler, python2.7-argparse, python-argparse
+Replaces: python2.7 (<< 2.7.3-6)
Description: Interactive high-level object-oriented language (version 2.7)
Version 2.7 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 python2.7.
Package: python2.7-minimal
Architecture: any
Priority: optional
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Depends: libpython2.7-minimal (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Recommends: python2.7
Suggests: binfmt-support
Replaces: python2.7 (<< 2.7.1~rc1-2~)
Conflicts: binfmt-support (<< 1.1.2)
+Multi-Arch: foreign
Description: Minimal subset of the Python language (version 2.7)
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/python2.7-minimal/README.Debian for a list of the modules
contained in this package.
+Package: libpython2.7-minimal
+Architecture: any
+Multi-Arch: same
+Priority: optional
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Recommends: libpython2.7-stdlib
+Replaces: python2.7 (<< 2.7.1~rc1-2~), python2.7-minimal (<< 2.7.3-6)
+Conflicts: binfmt-support (<< 1.1.2)
+Description: Minimal subset of the Python language (version 2.7)
+ This package contains some essential modules. It is normally not
+ used on it's own, but as a dependency of python2.7-minimal.
+
Package: libpython2.7
Architecture: any
+Multi-Arch: same
Section: libs
Priority: optional
-Depends: python2.7 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Pre-Depends: multiarch-support
+Depends: libpython2.7-stdlib (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Replaces: python2.7 (<< 2.6)
Description: Shared Python runtime library (version 2.7)
Version 2.7 of the high-level, interactive object oriented language,
@@ -71,7 +102,7 @@
Package: python2.7-dev
Architecture: any
-Depends: python2.7 (= ${binary:Version}), libpython2.7 (= ${binary:Version}), libexpat1-dev, libssl-dev, ${shlibs:Depends}, ${misc:Depends}
+Depends: python2.7 (= ${binary:Version}), libpython2.7-dev (= ${binary:Version}), libpython2.7 (= ${binary:Version}), libexpat1-dev, libssl-dev, ${shlibs:Depends}, ${misc:Depends}
Recommends: libc6-dev | libc-dev
Replaces: python2.7 (<< 2.7-3)
Description: Header files and a static library for Python (v2.7)
@@ -81,6 +112,24 @@
.
Maintainers of Python packages should read README.maintainers.
+Package: libpython2.7-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Pre-Depends: multiarch-support
+Depends: libpython2.7-stdlib (= ${binary:Version}), libpython2.7 (= ${binary:Version}), libssl-dev, libexpat1-dev, ${shlibs:Depends}, ${misc:Depends}
+Replaces: python2.7 (<< 2.7-3), python2.7-dev (<< 2.7.3-6), python2.7-minimal (<< 2.7.3-6)
+Recommends: libc6-dev | libc-dev
+Description: Header files and a static library for Python (v2.7)
+ Header files, a static library and development tools for building
+ Python (v2.7) modules, extending the Python interpreter or embedding
+ Python (v2.7) 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 python2.7-dev.
+
Package: idle-python2.7
Architecture: all
Depends: python2.7, python-tk (>= 2.6~a3), python2.7-tk, ${misc:Depends}
@@ -118,5 +167,23 @@
-Depends: python2.7 (>= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Depends: python2.7 (= ${binary:Version}), libpython2.7-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 2.7)
Python interpreter configured with --pydebug. Dynamically loaded modules are
searched in /usr/lib/python2.7/lib-dynload/debug first.
+
+Package: libpython2.7-dbg
+Section: debug
+Architecture: any
+Multi-Arch: same
+Priority: extra
+Pre-Depends: multiarch-support
+Depends: libpython2.7-stdlib (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, python
+Suggests: python2.7-gdbm-dbg, python2.7-tk-dbg
+Replaces: python2.7-dbg (<< 2.7.3-6)
+Description: Debug Build of the Python Interpreter (version 2.7)
+ Python interpreter configured with --pydebug. Dynamically loaded modules are
+ searched in /usr/lib/python2.7/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 python2.7.
+
diff -u python2.7-2.7.3/debian/PVER-minimal.README.Debian.in python2.7-2.7.3/debian/PVER-minimal.README.Debian.in
--- python2.7-2.7.3/debian/PVER-minimal.README.Debian.in
+++ python2.7-2.7.3/debian/PVER-minimal.README.Debian.in
@@ -26,7 +26,6 @@
_struct extension
_symtable builtin
_sysconfigdata module
- _sysconfigdata_nd module
_types builtin
_warnings builtin
_weakref extension
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
@@ -634,25 +646,34 @@
else
$(MAKE) -C $(buildd_shared) install prefix=$(CURDIR)/$(d)/usr
endif
+ mkdir -p $(d)/$(scriptdir)/plat-$(DEB_HOST_MULTIARCH)/
mv $(d)/$(scriptdir)/_sysconfigdata.py \
- $(d)/$(scriptdir)/_sysconfigdata_nd.py
+ $(d)/$(scriptdir)/plat-$(DEB_HOST_MULTIARCH)/_sysconfigdata_nd.py
sed -i 's/ -O3 / -O2 /g;s/$(LTO_CFLAGS)//g' \
- $(d)/$(scriptdir)/_sysconfigdata_nd.py
- cp -p debian/_sysconfigdata.py $(d)/$(scriptdir)/
+ $(d)/$(scriptdir)/plat-$(DEB_HOST_MULTIARCH)/_sysconfigdata_nd.py
+ cp -p debian/_sysconfigdata.py $(d)/$(scriptdir)
-find $(d)/usr/lib/python$(VER) -name '*_failed*.so'
find $(d)/usr/lib/python$(VER) -name '*_failed*.so' | xargs -r rm -f
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
: # remove files, which are not packaged
rm -f $(d)/usr/bin/smtpd.py
rm -rf $(d)/usr/lib/python$(VER)/ctypes/macholib
- rm -f $(d)/usr/lib/pkgconfig/python.pc
- rm -f $(d)/usr/lib/pkgconfig/python2.pc
+ rm -f $(d)/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/python.pc
+ rm -f $(d)/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/python2.pc
rm -f $(d)/usr/bin/python2{,-config}
rm -f $(d)/usr/share/man/man1/python2{,-config}.1
@@ -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.1 \
+ /$(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,67 +739,87 @@
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 \
+ /$(scriptdir)/plat-$(DEB_HOST_MULTIARCH)/_sysconfigdata_nd.py \
+ 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
- ln -sf $(PVER)/config/libpython$(VER).a \
- $(d_dev)/usr/lib/libpython$(VER).a
-
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 +928,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) -Xlib2to3
+
: # The rest goes into $(p_base)
mkdir -p $(d)/usr/lib/python$(VER)/dist-packages
(cd $(d) && tar cf - .) | (cd $(d_base) && tar xpf -)
@@ -889,7 +941,7 @@
rm -f $(d_base)/usr/bin/python
: # install egg-info for arparse
- install -m 644 debian/argparse.egg-info $(d_base)/$(scriptdir)/
+ install -m 644 debian/argparse.egg-info $(d_lbase)/$(scriptdir)/
: # Install menu icon
dh_installdirs -p$(p_base) usr/share/pixmaps
@@ -915,15 +967,46 @@
: # 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) \
+
+ for i in $(d)-dbg/$(scriptdir)/lib-dynload/*_d.so; do \
+ b=$$(basename $$i _d.so); \
+ d=$${b}.$(DEB_HOST_MULTIARCH)_d.so; \
+ mv $$i $(d)-dbg/$(scriptdir)/lib-dynload/$$d; \
+ done
+
+ 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 +1015,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)/
- ln -sf ../../libpython$(VER)_d.so \
- $(d_dbg)/$(scriptdir)/config_d/libpython$(VER)_d.so
+ cp -a $(d)-dbg/$(scriptdir)/config-$(DEB_HOST_MULTIARCH)_d \
+ $(d_ldbg)/$(scriptdir)/
+ ln -sf ../../../$(DEB_HOST_MULTIARCH)/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 +1116,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 +1155,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
@@ -6,7 +6,7 @@
libreadline-dev, libtinfo-dev, libncursesw5-dev (>= 5.3),
tk8.5-dev, blt-dev (>= 2.4z), libssl-dev,
zlib1g-dev, libbz2-dev,
- libexpat1-dev (>= 2.1),
+ libexpat1-dev,
libbluetooth-dev [linux-any],
locales [!armel !avr32 !hppa !ia64 !mipsel],
libsqlite3-dev, libffi-dev (>= 3.0.5),
@@ -23,36 +23,67 @@
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@
+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@
+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 +102,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 +112,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 +167,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,16 @@
+python2.7 (2.7.3-6linaro3) precise; urgency=low
+
+ * Fix issues reported by Jakub Wilk
+
+ -- Riku Voipio <[email protected]> Fri, 14 Sep 2012 13:30:27 +0000
+
+python2.7 (2.7.3-6linaro2) precise; urgency=low
+
+ * Backport python Multiarch changes from 3.3 packaging
+ - Thanks to Mathias Klose and Wookey
+
+ -- Riku Voipio <[email protected]> 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@[email protected] 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,126 @@
+Index: python2.7-2.7.3/Lib/sysconfig.py
+===================================================================
+--- python2.7-2.7.3.orig/Lib/sysconfig.py 2012-09-14 11:47:47.240247891 +0000
++++ python2.7-2.7.3/Lib/sysconfig.py 2012-09-14 11:47:50.296207635 +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: python2.7-2.7.3/Makefile.pre.in
+===================================================================
+--- python2.7-2.7.3.orig/Makefile.pre.in 2012-09-14 11:47:47.240247891 +0000
++++ python2.7-2.7.3/Makefile.pre.in 2012-09-14 11:47:50.296207635 +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
+@@ -557,6 +560,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
+@@ -865,7 +872,7 @@
+ $(DESTDIR)$(MANDIR)/man1/python$(VERSION).1
+
+ # Install the library
+-PLATDIR= plat-$(MACHDEP)
++PLATDIR= plat-$(MULTIARCH)
+ EXTRAPLATDIR= @EXTRAPLATDIR@
+ EXTRAMACHDEPPATH=@EXTRAMACHDEPPATH@
+ MACHDEPS= $(PLATDIR) $(EXTRAPLATDIR)
+@@ -1013,10 +1020,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: python2.7-2.7.3/Modules/Setup.dist
+===================================================================
+--- python2.7-2.7.3.orig/Modules/Setup.dist 2012-09-14 11:47:47.240247891 +0000
++++ python2.7-2.7.3/Modules/Setup.dist 2012-09-14 11:47:50.296207635 +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: python2.7-2.7.3/Python/dynload_shlib.c
+===================================================================
+--- python2.7-2.7.3.orig/Python/dynload_shlib.c 2012-09-14 11:47:47.240247891 +0000
++++ python2.7-2.7.3/Python/dynload_shlib.c 2012-09-14 11:48:23.487770635 +0000
+@@ -49,6 +49,12 @@
+ #ifdef Py_DEBUG
+ {"_d.so", "rb", C_EXTENSION},
+ {"module_d.so", "rb", C_EXTENSION},
++# ifdef MULTIARCH
++ {"." MULTIARCH "_d.so", "rb", C_EXTENSION},
++# endif
++#endif
++#ifdef MULTIARCH
++ {"." MULTIARCH ".so", "rb", C_EXTENSION},
+ #endif
+ {".so", "rb", C_EXTENSION},
+ {"module.so", "rb", C_EXTENSION},
+Index: python2.7-2.7.3/configure.ac
+===================================================================
+--- python2.7-2.7.3.orig/configure.ac 2012-09-14 11:47:47.240247891 +0000
++++ python2.7-2.7.3/configure.ac 2012-09-14 11:47:50.300207582 +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.