commit d036a293dcd041d3ed4d02453b85aa03cfed23fa Author: Nicolas Vigier boklm@torproject.org Date: Wed Jan 30 20:54:51 2019 +0100
Bug 29235: Build our own version of python3.6
The build of HTTPS-Everywhere requires python3.6, however the python3.6 package which we were using has now been removed from Debian Unstable.
We now build python 3.6 ourselves. As the different platforms use a different suite by default, we add the common-stretch target to rbm.conf, which we use to avoid building a different python for each platform. --- keyring/python.gpg | Bin 0 -> 4302 bytes projects/debootstrap-image/config | 6 +++--- projects/https-everywhere/build | 1 + projects/https-everywhere/config | 9 ++++++--- projects/python/build | 14 ++++++++++++++ projects/python/config | 25 +++++++++++++++++++++++++ rbm.conf | 17 +++++++++++++++++ 7 files changed, 66 insertions(+), 6 deletions(-)
diff --git a/keyring/python.gpg b/keyring/python.gpg new file mode 100644 index 0000000..66711fd Binary files /dev/null and b/keyring/python.gpg differ diff --git a/projects/debootstrap-image/config b/projects/debootstrap-image/config index 3c2df77..912d4e6 100644 --- a/projects/debootstrap-image/config +++ b/projects/debootstrap-image/config @@ -100,11 +100,11 @@ targets: suite: jessie arch: i386
- buster-amd64: + stretch-amd64: var: - minimal_apt_version: '1.8.0~alpha3.1' + minimal_apt_version: 1.4.9 container: - suite: buster + suite: stretch arch: amd64
input_files: diff --git a/projects/https-everywhere/build b/projects/https-everywhere/build index 10dd4bf..88431e0 100644 --- a/projects/https-everywhere/build +++ b/projects/https-everywhere/build @@ -1,5 +1,6 @@ #!/bin/bash [% c("var/set_default_env") -%] +[% pc('python', 'var/setup', { python_tarfile => c('input_files_by_name/python') }) %] tar xf [% project %]-[% c('version') %].tar.gz cd [% project %]-[% c('version') %] ./make.sh diff --git a/projects/https-everywhere/config b/projects/https-everywhere/config index 59eb463..1be120b 100644 --- a/projects/https-everywhere/config +++ b/projects/https-everywhere/config @@ -10,18 +10,17 @@ var: # HTTPS Everywhere is expected to be the same on all platforms. To avoid # building the same thing 4 times, using 4 different container images # (each one with a different suite or architecture), we set the container - # to buster/amd64 for all platforms. This allows us to create only one + # to stretch/amd64 for all platforms. This allows us to create only one # container image, and also build the extension only one time as the # filename does not contain the platform, and var/build_id should be # the same since there is now nothing platform specific in the build # inputs. This allows us to save a little time and disk space. container: use_container: 1 - suite: buster + suite: stretch arch: amd64 deps: - git - - python3.6 - libxslt1.1 - libxml2-utils - sqlite3 @@ -31,3 +30,7 @@ var:
input_files: - project: container-image + - project: python + name: python + target: + - common-stretch diff --git a/projects/python/build b/projects/python/build new file mode 100644 index 0000000..1fff7ce --- /dev/null +++ b/projects/python/build @@ -0,0 +1,14 @@ +#!/bin/bash +[% c("var/set_default_env") -%] +distdir=/var/tmp/dist/[% project %] +mkdir -p $distdir +tar xf [% c('input_files_by_name/python') %] +cd Python-[% c('version') %] +./configure --prefix=$distdir +make -j[% c("buildconf/num_procs") %] +make prefix=$distdir install +cd /var/tmp/dist +[% c('tar', { + tar_src => 'python', + tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'), + }) %] diff --git a/projects/python/config b/projects/python/config new file mode 100644 index 0000000..10c79cc --- /dev/null +++ b/projects/python/config @@ -0,0 +1,25 @@ +# vim: filetype=yaml sw=2 +version: 3.6.8 +filename: 'python-[% c("lsb_release/id") %]-[% c("lsb_release/release") %]-[% c("var/build_id") %].tar.gz' +var: + container: + use_container: 1 + deps: + - xz-utils + - build-essential + - python-all + - zlib1g-dev + - libssl-dev + + setup: | + mkdir -p /var/tmp/dist + tar -C /var/tmp/dist -xf $rootdir/[% c("python_tarfile") %] + export PATH=/var/tmp/dist/python/bin:"$PATH" + +input_files: + - project: container-image + - name: python + URL: 'https://www.python.org/ftp/python/%5B% c("version") %]/Python-[% c("version") %].tar.xz' + gpg_keyring: python.gpg + sig_ext: asc + file_gpg_id: 1 diff --git a/rbm.conf b/rbm.conf index 5e1ec0e..7abdf6a 100644 --- a/rbm.conf +++ b/rbm.conf @@ -137,6 +137,23 @@ targets: # Don't create mar files to save time build_mar: 0
+ # The common-stretch target is used to build components that are common to all + # platforms, using Debian stretch. + common-stretch: + var: + common: 1 + container: + suite: stretch + arch: amd64 + deps: + - build-essential + - python + - bison + - automake + - libtool + - zip + - unzip + torbrowser-linux-x86_64: - linux-x86_64 - linux
tbb-commits@lists.torproject.org