Bug 1427326 - Build a python package for Debian 7. r=dustin
new file mode 100644
--- /dev/null
+++ b/build/debian-packages/python-wheezy.diff
@@ -0,0 +1,149 @@
+diff -u python2.7-2.7.9/debian/changelog python2.7-2.7.9/debian/changelog
+--- python2.7-2.7.9/debian/changelog
++++ python2.7-2.7.9/debian/changelog
+@@ -1,3 +1,17 @@
++python2.7 (2.7.9-2.deb7moz1) wheezy; urgency=medium
++
++ * Mozilla backport for wheezy.
++ * debian/control.in:
++ - Remove gcc 4.9 build dependency, wheezy doesn't have it.
++ - Remove libexpat1-dev dependency from python dev packages. It prevents
++ from co-installing some i386 -dev packages.
++ * debian/rules:
++ - Adapt ar, ranlib and objcopy paths to work on wheezy.
++ * debian/control.in, debian/rules: Don't generate the -doc package, sphinx
++ is too old in wheezy.
++
++ -- Mike Hommey <glandium@mozilla.com> Fri, 13 Oct 2017 19:20:21 +0900
++
+ python2.7 (2.7.9-2+deb8u1) jessie; urgency=medium
+
+ * Backport upstream commit b3ce713fb9beebfff9848cefa0acbd59acc68fe9
+diff -u python2.7-2.7.9/debian/control.in python2.7-2.7.9/debian/control.in
+--- python2.7-2.7.9/debian/control.in
++++ python2.7-2.7.9/debian/control.in
+@@ -3,7 +3,6 @@
+ Priority: optional
+ Maintainer: Matthias Klose <doko@debian.org>
+ Build-Depends: debhelper (>= 5), @bd_dpkgdev@
+- gcc (>= 4:4.9.2),
+ quilt, autoconf, autotools-dev,
+ lsb-release, sharutils,
+ libreadline-dev, libtinfo-dev, libncursesw5-dev (>= 5.3), @bd_gcc@
+@@ -112,7 +111,7 @@
+ Package: @PVER@-dev
+ Architecture: any
+ Multi-Arch: allowed
+-Depends: @PVER@ (= ${binary:Version}), lib@PVER@-dev (= ${binary:Version}), lib@PVER@ (= ${binary:Version}), libexpat1-dev, ${shlibs:Depends}, ${misc:Depends}
++Depends: @PVER@ (= ${binary:Version}), lib@PVER@-dev (= ${binary:Version}), lib@PVER@ (= ${binary:Version}), ${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@)
+@@ -127,7 +126,7 @@
+ Architecture: any
+ Multi-Arch: same
+ Pre-Depends: multiarch-support
+-Depends: lib@PVER@-stdlib (= ${binary:Version}), lib@PVER@ (= ${binary:Version}), libexpat1-dev, ${shlibs:Depends}, ${misc:Depends}
++Depends: lib@PVER@-stdlib (= ${binary:Version}), lib@PVER@ (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+ Replaces: @PVER@ (<< 2.7-3), @PVER@-dev (<< 2.7.3-10), @PVER@-minimal (<< 2.7.3-10)
+ Recommends: libc6-dev | libc-dev
+ Description: Header files and a static library for Python (v@VER@)
+@@ -161,27 +160,6 @@
+ IDLE is an Integrated Development Environment for Python (v@VER@).
+ IDLE is written using Tkinter and therefore quite platform-independent.
+
+-Package: @PVER@-doc
+-Section: doc
+-Architecture: all
+-Depends: libjs-jquery, libjs-underscore, ${misc:Depends}
+-Suggests: @PVER@
+-Description: Documentation for the high-level object-oriented language Python (v@VER@)
+- These is the official set of documentation for the interactive high-level
+- object-oriented language Python (v@VER@). All documents are provided
+- in HTML format. The package consists of ten documents:
+- .
+- * What's New in Python@VER@
+- * Tutorial
+- * Python Library Reference
+- * Macintosh Module Reference
+- * Python Language Reference
+- * Extending and Embedding Python
+- * Python/C API Reference
+- * Installing Python Modules
+- * Documenting Python
+- * Distributing Python Modules
+-
+ Package: @PVER@-dbg
+ Section: debug
+ Architecture: any
+diff -u python2.7-2.7.9/debian/rules python2.7-2.7.9/debian/rules
+--- python2.7-2.7.9/debian/rules
++++ python2.7-2.7.9/debian/rules
+@@ -121,8 +121,8 @@
+ CC = $(DEB_HOST_GNU_TYPE)-gcc
+ CXX=$(DEB_HOST_GNU_TYPE)-g++
+
+-AR=$(DEB_HOST_GNU_TYPE)-ar
+-RANLIB=$(DEB_HOST_GNU_TYPE)-ranlib
++AR=$(DEB_HOST_GNU_TYPE)-gcc-ar-4.7
++RANLIB=$(DEB_HOST_GNU_TYPE)-gcc-ranlib-4.7
+
+ DPKG_CFLAGS := $(shell dpkg-buildflags --get CPPFLAGS; dpkg-buildflags --get CFLAGS)
+ DPKG_LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
+@@ -171,8 +171,6 @@
+ LTO_CFLAGS += -ffat-lto-objects
+ endif
+ EXTRA_OPT_CFLAGS += $(LTO_CFLAGS)
+- AR=$(DEB_HOST_GNU_TYPE)-gcc-ar
+- RANLIB=$(DEB_HOST_GNU_TYPE)-gcc-ranlib
+ endif
+
+ make_build_target = $(if $(with_pgo),profile-opt)
+@@ -628,7 +626,6 @@
+
+ stamps/stamp-doc-html:
+ dh_testdir
+- $(MAKE) -C Doc html
+ touch stamps/stamp-doc-html
+
+ build-doc: stamps/stamp-patch stamps/stamp-build-doc
+@@ -1215,30 +1212,6 @@
+ dh_testdir -i
+ dh_testroot -i
+
+- : # $(p_doc) package
+- dh_installdirs -p$(p_doc) \
+- usr/share/doc/$(p_base) \
+- usr/share/doc/$(p_doc)
+- dh_installdocs -p$(p_doc)
+- cp -a Doc/build/html $(d_doc)/usr/share/doc/$(p_base)/
+- rm -f $(d_doc)/usr/share/doc/$(p_base)/html/_static/jquery.js
+- rm -f $(d_doc)/usr/share/doc/$(p_base)/html/_static/underscore.js
+- dh_link -p$(p_doc) \
+- /usr/share/doc/$(p_base)/html \
+- /usr/share/doc/$(p_doc)/html \
+- /usr/share/javascript/jquery/jquery.js \
+- /usr/share/doc/$(p_base)/html/_static/jquery.js \
+- /usr/share/javascript/underscore/underscore.js \
+- /usr/share/doc/$(p_base)/html/_static/underscore.js
+-
+- : # devhelp docs
+- $(buildd_static)/python debian/pyhtml2devhelp.py \
+- $(d_doc)/usr/share/doc/$(p_base)/html index.html $(VER) \
+- > $(d_doc)/usr/share/doc/$(p_base)/html/$(PVER).devhelp
+- gzip -9v $(d_doc)/usr/share/doc/$(p_base)/html/$(PVER).devhelp
+- dh_link -p$(p_doc) \
+- /usr/share/doc/$(p_base)/html /usr/share/devhelp/books/$(PVER)
+-
+ for i in $(p_ltst); do \
+ rm -rf debian/$$i/usr/share/doc/$$i; \
+ ln -s $(p_lbase) debian/$$i/usr/share/doc/$$i; \
+@@ -1298,7 +1271,7 @@
+ endif
+
+ find $(d_ldbg) $(d_ldev) -name '*.a' ! -type l \
+- | xargs -n 1 $(DEB_HOST_GNU_TYPE)-objcopy -p --remove-section=.gnu.lto_.*
++ | xargs -n 1 objcopy -p --remove-section=.gnu.lto_.*
+ dh_strip -a -N$(p_dbg) -N$(p_ldbg) -Xdebug -Xdbg --dbg-package=$(p_dbg)
+ cp Tools/gdb/libpython.py $(d_dbg)/usr/lib/debug/usr/bin/$(PVER)-gdb.py
+ ln -sf $(PVER)-gdb.py $(d_dbg)/usr/lib/debug/usr/bin/$(PVER)-dbg-gdb.py
--- a/taskcluster/ci/config.yml
+++ b/taskcluster/ci/config.yml
@@ -36,16 +36,17 @@ treeherder:
'tc-L10n-Rpk': 'Localized Repackaged Repacks executed by Taskcluster'
'tc-BM-L10n': 'Beetmover for locales executed by Taskcluster'
'tc-BMR-L10n': 'Beetmover repackages for locales executed by Taskcluster'
'c-Up': 'Balrog submission of complete updates'
'tc-cs': 'Checksum signing executed by Taskcluster'
'tc-rs': 'Repackage signing executed by Taskcluster'
'tc-BMcs': 'Beetmover checksums, executed by Taskcluster'
'Aries': 'Aries Device Image'
+ 'Deb7': 'Packages for Debian 7'
'Nexus 5-L': 'Nexus 5-L Device Image'
'I': 'Docker Image Builds'
'TL': 'Toolchain builds for Linux 64-bits'
'TM': 'Toolchain builds for OSX'
'TMW': 'Toolchain builds for Windows MinGW'
'TW32': 'Toolchain builds for Windows 32-bits'
'TW64': 'Toolchain builds for Windows 64-bits'
'Searchfox': 'Searchfox builds'
new file mode 100644
--- /dev/null
+++ b/taskcluster/ci/packages/kind.yml
@@ -0,0 +1,28 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+loader: taskgraph.loader.transform:loader
+
+transforms:
+ - taskgraph.transforms.try_job:transforms
+ - taskgraph.transforms.job:transforms
+ - taskgraph.transforms.task:transforms
+
+jobs:
+ deb7-python:
+ description: "Python backport for Debian wheezy"
+ treeherder:
+ kind: build
+ platform: packages/opt
+ symbol: Deb7(python)
+ tier: 1
+ worker-type: aws-provisioner-v1/gecko-{level}-b-linux
+ worker:
+ max-run-time: 1800
+ run:
+ using: debian-package
+ dsc: "http://snapshot.debian.org/archive/debian/20160813T164221Z/pool/main/p/python2.7/python2.7_2.7.9-2+deb8u1.dsc"
+ dsc-sha256: 274c293e7156edf59cb9f0a9d8cedcd94fa801df35adf39b8a9f3d776a250ead
+ patch: python-wheezy.diff
+ pre-build-command: debian/rules control-file