Bug 1622963 - Install python 3.6 in build docker images. CLOSED TREE
authorMike Hommey <mh+mozilla@glandium.org>
Tue, 02 Jun 2020 03:51:14 +0000
changeset 533628 2931388675f0eb1c426408881f12946f810e19da
parent 533627 ced2b80350838f6f7236242457dac3854ed690c3
child 533629 4e4f67b67b7fa937e07ea4baf56cc27839f555ac
push id37474
push userabutkovits@mozilla.com
push dateWed, 03 Jun 2020 09:29:05 +0000
treeherdermozilla-central@bf162b065e1f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1622963
milestone79.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1622963 - Install python 3.6 in build docker images. CLOSED TREE Differential Revision: https://phabricator.services.mozilla.com/D77753
build/debian-packages/python3.5-jessie.diff
build/debian-packages/python3.6-jessie.diff
taskcluster/ci/docker-image/kind.yml
taskcluster/ci/packages/kind.yml
taskcluster/docker/debian-base/Dockerfile
rename from build/debian-packages/python3.5-jessie.diff
rename to build/debian-packages/python3.6-jessie.diff
--- a/build/debian-packages/python3.5-jessie.diff
+++ b/build/debian-packages/python3.6-jessie.diff
@@ -1,89 +1,165 @@
-diff -Nru python3.5-3.5.3/debian/apt_preferences python3.5-3.5.3/debian/apt_preferences
---- python3.5-3.5.3/debian/apt_preferences	1970-01-01 09:00:00.000000000 +0900
-+++ python3.5-3.5.3/debian/apt_preferences	2019-07-16 17:55:56.000000000 +0900
+diff -Nru python3.6-3.6.3/debian/apt_preferences python3.6-3.6.3/debian/apt_preferences
+--- python3.6-3.6.3/debian/apt_preferences	1970-01-01 09:00:00.000000000 +0900
++++ python3.6-3.6.3/debian/apt_preferences	2020-05-07 11:20:37.000000000 +0900
 @@ -0,0 +1,7 @@
 +Package: python3-pkg-resources
 +Pin: release n=jessie-backports
 +Pin-Priority: 900
 +
 +Package: python3-setuptools
 +Pin: release n=jessie-backports
 +Pin-Priority: 900
-diff -Nru python3.5-3.5.3/debian/changelog python3.5-3.5.3/debian/changelog
---- python3.5-3.5.3/debian/changelog	2017-01-19 23:11:04.000000000 +0900
-+++ python3.5-3.5.3/debian/changelog	2019-07-16 17:55:56.000000000 +0900
-@@ -1,3 +1,17 @@
-+python3.5 (3.5.3-1.deb8moz1) jessie; urgency=medium
+diff -Nru python3.6-3.6.3/debian/changelog python3.6-3.6.3/debian/changelog
+--- python3.6-3.6.3/debian/changelog	2017-12-05 19:22:15.000000000 +0900
++++ python3.6-3.6.3/debian/changelog	2020-05-07 11:20:37.000000000 +0900
+@@ -1,3 +1,19 @@
++python3.6 (3.6.3-2.deb8moz1) jessie; urgency=medium
 +
 +  * Mozilla backport for jessie.
 +  * debian/control.in: Remove libmpdec-dev dependency; Jessie has a
 +    broken version.
 +  * debian/rules:
 +    - Remove --with-system-libmpdec because jessie doesn't have it.
 +    - Disable PGO builds because they segfault.
 +  * debian/rules, debian/apt_preferences: Prefer python3-pkg-resources and
 +    python3-setuptools being installed from jessie-backports when this package
 +    is installed.
++  * debian/control.in, debian/rules: Don't generate the -doc package, sphinx
++    is too old in jessie.
 +
-+ -- Mike Hommey <glandium@mozilla.com>  Tue, 16 Jul 2019 17:55:56 +0900
++ -- Mike Hommey <glandium@mozilla.com>  Tue, 7 May 2020 11:20:37 +0900
 +
- python3.5 (3.5.3-1) unstable; urgency=medium
+ python3.6 (3.6.3-2) unstable; urgency=medium
  
-   * Python 3.5.3 release.
-diff -Nru python3.5-3.5.3/debian/control.in python3.5-3.5.3/debian/control.in
---- python3.5-3.5.3/debian/control.in	2016-12-13 23:21:47.000000000 +0900
-+++ python3.5-3.5.3/debian/control.in	2019-07-16 17:55:56.000000000 +0900
+   * Update to 20171205 from the 3.6 branch.
+diff -Nru python3.6-3.6.3/debian/control.in python3.6-3.6.3/debian/control.in
+--- python3.6-3.6.3/debian/control.in	2017-12-05 19:22:15.000000000 +0900
++++ python3.6-3.6.3/debian/control.in	2020-05-07 11:20:37.000000000 +0900
 @@ -9,7 +9,7 @@
    zlib1g-dev, libbz2-dev, liblzma-dev,
    libgdbm-dev, libdb-dev,
    tk-dev, blt-dev (>= 2.4z), libssl-dev,
 -  libexpat1-dev, libmpdec-dev (>= 2.4),
 +  libexpat1-dev,
    libbluetooth-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64],
    locales [!armel !avr32 !hppa !ia64 !mipsel],
    libsqlite3-dev, libffi-dev (>= 3.0.5) [!or1k !avr32],
-@@ -53,7 +53,6 @@
+@@ -27,7 +27,7 @@
+ Multi-Arch: allowed
+ Priority: @PRIO@
+ Depends: @PVER@-minimal (= ${binary:Version}), lib@PVER@-stdlib (= ${binary:Version}), mime-support, ${shlibs:Depends}, ${misc:Depends}
+-Suggests: @PVER@-venv, @PVER@-doc, binutils
++Suggests: @PVER@-venv, binutils
+ Description: Interactive high-level object-oriented language (version @VER@)
+  Python is a high-level, interactive, object-oriented language. Its @VER@ version
+  includes an extensive class library with lots of goodies for
+@@ -53,7 +53,7 @@
  Priority: @PRIO@
  Pre-Depends: ${misc:Pre-Depends}
  Depends: lib@PVER@-minimal (= ${binary:Version}), mime-support, ${shlibs:Depends}, ${misc:Depends}
--Breaks: libmpdec2 (<< 2.4.2)
+-Breaks: libmpdec2 (<< 2.4.2), PYFPE_BREAKS
++Breaks: PYFPE_BREAKS
+ Replaces: lib@PVER@-testsuite (<< 3.6.2-2)
  Description: Interactive high-level object-oriented language (standard library, version @VER@)
   Python is a high-level, interactive, object-oriented language. Its @VER@ version
-  includes an extensive class library with lots of goodies for
-diff -Nru python3.5-3.5.3/debian/rules python3.5-3.5.3/debian/rules
---- python3.5-3.5.3/debian/rules	2017-01-19 23:11:04.000000000 +0900
-+++ python3.5-3.5.3/debian/rules	2019-07-16 17:55:56.000000000 +0900
-@@ -155,14 +155,6 @@
-     EXTRA_OPT_FLAGS += -O2
+@@ -164,28 +164,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
+-Multi-Arch: foreign
+-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 -Nru python3.6-3.6.3/debian/rules python3.6-3.6.3/debian/rules
+--- python3.6-3.6.3/debian/rules	2017-12-05 19:22:15.000000000 +0900
++++ python3.6-3.6.3/debian/rules	2020-05-07 11:20:37.000000000 +0900
+@@ -180,14 +180,6 @@
+     DEBUG_CFLAGS += -fexceptions
  endif
  
 -ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
 -  ifeq ($(DEB_HOST_ARCH_OS),linux)
 -    ifneq (,$(findstring $(DEB_HOST_ARCH), amd64 armel armhf i386 powerpc ppc64 ppc64el s390x))
 -      with_pgo := yes
 -    endif
 -  endif
 -endif
 -
  ifneq (,$(findstring $(DEB_HOST_ARCH), amd64 armel armhf i386 powerpc ppc64 ppc64el s390x))
    with_lto := yes
  endif
-@@ -321,8 +313,7 @@
+@@ -347,8 +339,7 @@
  		--with-dbmliborder=bdb:gdbm \
  		--with-computed-gotos \
  		--without-ensurepip \
 -		--with-system-expat \
 -		--with-system-libmpdec \
 +		--with-system-expat
  
  ifneq (,$(filter $(DEB_HOST_ARCH), avr32 or1k))
    common_configure_args += --without-ffi
-@@ -1292,6 +1283,8 @@
+@@ -684,7 +675,6 @@
+ 
+ stamps/stamp-doc-html:
+ 	dh_testdir
+-	$(MAKE) -C Doc html
+ 	@mkdir -p stamps
+ 	touch stamps/stamp-doc-html
+ 
+@@ -1310,6 +1300,8 @@
  	  install -D -m 644 $$i debian/$$b/usr/share/lintian/overrides/$$b; \
  	done
  
-+	install -D -m 644 debian/apt_preferences $(d_min)/etc/apt/preferences.d/python3.5.pref
++	install -D -m 644 debian/apt_preferences $(d_min)/etc/apt/preferences.d/python3.6.pref
 +
  	touch stamps/stamp-install
  
  # Build architecture-independent files here.
+@@ -1317,26 +1309,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
+-	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
+-	cd $(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 -9nv $(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_base) debian/$$i/usr/share/doc/$$i; \
--- a/taskcluster/ci/docker-image/kind.yml
+++ b/taskcluster/ci/docker-image/kind.yml
@@ -53,17 +53,17 @@ jobs:
     debian8-base:
         symbol: I(deb8-base)
         definition: debian-base
         parent: debian8-raw
         packages:
             - deb8-gdb
             - deb8-git
             - deb8-mercurial
-            - deb8-python3.5
+            - deb8-python3.6
             - deb8-python3-defaults
             - deb8-python-zstandard
             - deb8-xz-utils
     deb8-toolchain-build:
         symbol: I(toolchain)
         parent: debian8-base
         definition: toolchain-build
         packages:
--- a/taskcluster/ci/packages/kind.yml
+++ b/taskcluster/ci/packages/kind.yml
@@ -19,39 +19,40 @@ job-defaults:
     worker:
         max-run-time: 1800
     run-on-projects: []
     run:
         dist: jessie
         snapshot: 20200422T205110Z
 
 jobs:
-    deb8-python3.5:
-        description: "Python 3.5 backport for Debian jessie"
+    deb8-python3.6:
+        description: "Python 3.6 backport for Debian jessie"
         treeherder:
-            symbol: Deb8(python3.5)
+            symbol: Deb8(python3.6)
         run:
             using: debian-package
             dsc:
-                url: http://snapshot.debian.org/archive/debian/20170119T211826Z/pool/main/p/python3.5/python3.5_3.5.3-1.dsc
-                sha256: 5259cbb15bb93f7bdfbe9ce03a972ea47f81c86057d5939ef9ce578414b2f1de
-            patch: python3.5-jessie.diff
+                url: http://snapshot.debian.org/archive/debian/20171205T222638Z/pool/main/p/python3.6/python3.6_3.6.3-2.dsc
+                sha256: d791dd2671127394ce5383e345b2fed9ab2481be65b6c420fa53b2ee18c240ca
+            patch: python3.6-jessie.diff
             pre-build-command: debian/rules control-file
 
     deb8-python3-defaults:
         description: "python3-defaults backport for Debian jessie"
         treeherder:
             symbol: Deb8(python3-defaults)
         run:
             using: debian-package
             dsc:
-                url: http://snapshot.debian.org/archive/debian/20170120T212942Z/pool/main/p/python3-defaults/python3-defaults_3.5.3-1.dsc
-                sha256: 2bec1dd8a5836d5a19fbbd48d7c49aec40642669036297a34bbfd8b0b2d61439
+                # The last version that doesn't also require python 3.7 or a separate python3-distutils package.
+                url: http://snapshot.debian.org/archive/debian/20171026T221955Z/pool/main/p/python3-defaults/python3-defaults_3.6.3-2.dsc
+                sha256: df91831a9a307f5e7f3fabdda52f21eeffd2f683cbeca5a581c37c1c0912549d
             packages:
-                - deb8-python3.5
+                - deb8-python3.6
             pre-build-command: debian/rules control-file
 
     deb8-python-setuptools:
         description: "python-setuptools backport for Debian jessie"
         treeherder:
             symbol: Deb8(python-setuptools)
         run:
             using: debian-package
@@ -182,17 +183,17 @@ jobs:
         treeherder:
             symbol: Deb8(dh-python)
         run:
             using: debian-package
             dsc:
                 url: http://snapshot.debian.org/archive/debian/20170125T211752Z/pool/main/d/dh-python/dh-python_2.20170125.dsc
                 sha256: ef4f2951cea36ae4aac29126a1017505f98b595432fb5bdac0f21b4b4d72c1b4
             packages:
-                - deb8-python3.5
+                - deb8-python3.6
                 - deb8-python3-defaults
 
     deb8-xz-utils:
         description: "xz-utils for Debian jessie"
         treeherder:
             symbol: Deb8(xz)
         run:
             using: debian-package
@@ -230,17 +231,17 @@ jobs:
             using: debian-package
             tarball:
                 url: https://github.com/indygreg/python-zstandard/archive/0.11.1.tar.gz
                 sha256: 2df90698e22f0da49cdd360438479f363e58eb8c3ac6e8bac84d831cf8e7baf4
             name: python-zstandard
             patch: python-zstandard-jessie.diff
             packages:
                 - deb8-dh-python
-                - deb8-python3.5
+                - deb8-python3.6
                 - deb8-python3-defaults
 
     deb9-python-zstandard:
         description: "python-zstandard for Debian stretch"
         treeherder:
             symbol: Deb9(python-zstandard)
         run:
             using: debian-package
--- a/taskcluster/docker/debian-base/Dockerfile
+++ b/taskcluster/docker/debian-base/Dockerfile
@@ -34,17 +34,17 @@ RUN /usr/local/sbin/setup_packages.sh $T
     apt-get dist-upgrade && \
     apt-get install \
       git \
       less \
       make \
       mercurial \
       patch \
       python \
-      python3.5 \
+      python3 \
       python3-distutils-extra \
       python3-minimal \
       python-zstandard \
       python3-zstandard \
       vim-tiny \
       xz-utils
 
 # %include testing/mozharness/external_tools/robustcheckout.py