commit 1b79a12ecc1b918c379c29b58954d2680672e201
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Wed Apr 25 15:10:30 2018 +0200
Bug 25876: Generate source tarballs during build
We now generate source tarballs for firefox, torbutton and tor-launcher
during stable, alpha and nightly builds. We don't generate them with
|make testbuild|, but they can be generated with |make testbuild-src|.
---
Makefile | 15 +++++++++++++++
README.MAKEFILE | 11 ++++++++---
projects/firefox/config | 12 ++++++++++++
projects/release/build | 6 ++++++
projects/release/config | 32 ++++++++++++++++++++++++++++++++
projects/tor-launcher/config | 8 ++++++++
projects/torbutton/config | 8 ++++++++
rbm.conf | 9 +++++++++
8 files changed, 98 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index d419422..285b49d 100644
--- a/Makefile
+++ b/Makefile
@@ -29,6 +29,9 @@ release-windows-x86_64: submodule-update
release-osx-x86_64: submodule-update
$(rbm) build release --target release --target torbrowser-osx-x86_64
+release-src: submodule-update
+ $(rbm) build release --target release --target torbrowser-src
+
alpha: submodule-update
$(rbm) build release --target alpha --target torbrowser-all
@@ -56,6 +59,9 @@ alpha-windows-x86_64: submodule-update
alpha-osx-x86_64: submodule-update
$(rbm) build release --target alpha --target torbrowser-osx-x86_64
+alpha-src: submodule-update
+ $(rbm) build release --target alpha --target torbrowser-src
+
nightly: submodule-update
$(rbm) build release --target nightly --target torbrowser-all
@@ -83,6 +89,9 @@ nightly-windows-x86_64: submodule-update
nightly-osx-x86_64: submodule-update
$(rbm) build release --target nightly --target torbrowser-osx-x86_64
+nightly-src: submodule-update
+ $(rbm) build release --target nightly --target torbrowser-src
+
alpha_nightly: submodule-update
$(rbm) build release --target alpha_nightly --target torbrowser-all
@@ -107,6 +116,9 @@ alpha_nightly-windows-x86_64: submodule-update
alpha_nightly-osx-x86_64: submodule-update
$(rbm) build release --target alpha_nightly --target torbrowser-osx-x86_64
+alpha_nightly-src: submodule-update
+ $(rbm) build release --target alpha_nightly --target torbrowser-src
+
testbuild: submodule-update
$(rbm) build release --target testbuild --target torbrowser-all
@@ -134,6 +146,9 @@ testbuild-windows-i686: submodule-update
testbuild-osx-x86_64: submodule-update
$(rbm) build release --target testbuild --target torbrowser-osx-x86_64
+testbuild-src: submodule-update
+ $(rbm) build release --target testbuild --target torbrowser-src-testbuild
+
signtag-release: submodule-update
$(rbm) build release --step signtag --target release
diff --git a/README.MAKEFILE b/README.MAKEFILE
index 1514780..7351c5f 100644
--- a/README.MAKEFILE
+++ b/README.MAKEFILE
@@ -46,14 +46,19 @@ The same as alpha_nightly, for the selected platform only.
testbuild
---------
Build a Tor Browser test build. To make the build faster, only the en-US
-locale is created, without mar files. By default it is based on the
-alpha channel, but you can change that by editing rbm.local.conf.
-The resulting build can be found in directory testbuild.
+locale is created, without mar files, and without the source tarballs.
+By default it is based on the alpha channel, but you can change that by
+editing rbm.local.conf. The resulting build can be found in directory
+testbuild.
{release,alpha,nightly,testbuild}-linux-x86_64-debug
----------------------------------------------------
Create a debug build for Linux x86_64 with debug features such as ASan.
+{release,alpha,nightly,testbuild}-src
+-------------------------------------
+Create source tarballs for firefox, torbutton and tor-launcher.
+
fetch
-----
Fetch new commits from all components. This is useful when you want to
diff --git a/projects/firefox/config b/projects/firefox/config
index 4d68969..2f40fe2 100644
--- a/projects/firefox/config
+++ b/projects/firefox/config
@@ -28,6 +28,18 @@ var:
# used by projects/firefox-locale-bundle
l10n-changesets.json: '[% exec("cat mobile/locales/l10n-changesets.json") %]'
+steps:
+ src-tarballs:
+ filename: 'src-[% project %]-[% c("version") %].tar.xz'
+ version: '[% c("git_hash") %]'
+ input_files: []
+ var:
+ container:
+ use_container: 0
+ targets:
+ nightly:
+ version: '[% c("abbrev") %]'
+
targets:
release:
var:
diff --git a/projects/release/build b/projects/release/build
index ca7b26d..af9d673 100644
--- a/projects/release/build
+++ b/projects/release/build
@@ -27,6 +27,12 @@ mkdir -p "$destdir"
[% IF c("var/torbrowser-linux-x86_64") -%]
mv [% c('input_files_by_name/linux-x86_64') %]/* "$destdir"/
[% END -%]
+[% IF c("var/torbrowser-src") -%]
+ mv [% c('input_files_by_name/src-firefox') %] \
+ [% c('input_files_by_name/src-torbutton') %] \
+ [% c('input_files_by_name/src-tor-launcher') %] \
+ "$destdir"/
+[% END -%]
cd "$destdir"
cat > .htaccess <<EOF
RewriteEngine On
diff --git a/projects/release/config b/projects/release/config
index 1a742ac..52a416a 100644
--- a/projects/release/config
+++ b/projects/release/config
@@ -16,6 +16,7 @@ targets:
- torbrowser-osx-x86_64
- torbrowser-android-armv7
- torbrowser-android-x86
+ - torbrowser-src
torbrowser-android-armv7:
var:
torbrowser-android-armv7: 1
@@ -41,6 +42,12 @@ targets:
torbrowser-osx-x86_64:
var:
torbrowser-osx-x86_64: 1
+ torbrowser-src:
+ var:
+ torbrowser-src: '[% ! c("var/testbuild") %]'
+ torbrowser-src-testbuild:
+ var:
+ torbrowser-src: 1
notarget:
- release
@@ -74,6 +81,7 @@ targets:
testbuild:
output_dir: 'testbuild'
var:
+ testbuild: 1
build_target: torbrowser-testbuild
publish_dir: ''
@@ -153,6 +161,30 @@ input_files:
- torbrowser-windows-x86_64
- expert-bundle
+ - name: src-firefox
+ project: firefox
+ enable: '[% c("var/torbrowser-src") %]'
+ pkg_type: src-tarballs
+ target:
+ - '[% c("var/build_target") %]'
+ - torbrowser-src
+
+ - name: src-torbutton
+ project: torbutton
+ enable: '[% c("var/torbrowser-src") %]'
+ pkg_type: src-tarballs
+ target:
+ - '[% c("var/build_target") %]'
+ - torbrowser-src
+
+ - name: src-tor-launcher
+ project: tor-launcher
+ enable: '[% c("var/torbrowser-src") %]'
+ pkg_type: src-tarballs
+ target:
+ - '[% c("var/build_target") %]'
+ - torbrowser-src
+
steps:
signtag:
build_log: '-'
diff --git a/projects/tor-launcher/config b/projects/tor-launcher/config
index 4f2d2b7..8087727 100644
--- a/projects/tor-launcher/config
+++ b/projects/tor-launcher/config
@@ -11,6 +11,14 @@ var:
input_files:
- project: container-image
+steps:
+ src-tarballs:
+ filename: 'src-[% project %]-[% c("version") %].tar.xz'
+ input_files: []
+ var:
+ container:
+ use_container: 0
+
targets:
nightly:
version: '[% c("abbrev") %]'
diff --git a/projects/torbutton/config b/projects/torbutton/config
index 5d42fc5..369d7e4 100644
--- a/projects/torbutton/config
+++ b/projects/torbutton/config
@@ -11,6 +11,14 @@ var:
input_files:
- project: container-image
+steps:
+ src-tarballs:
+ filename: 'src-[% project %]-[% c("version") %].tar.xz'
+ input_files: []
+ var:
+ container:
+ use_container: 0
+
targets:
nightly:
version: '[% c("abbrev") %]'
diff --git a/rbm.conf b/rbm.conf
index 1b82e60..df31741 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -7,6 +7,15 @@ build_log: '[% GET ENV.RBM_LOGS_DIR ? ENV.RBM_LOGS_DIR : "logs" %]/[% project %]
pkg_type: build
+steps:
+ src-tarballs:
+ compress_tar: xz
+ src-tarballs: |
+ #!/bin/bash
+ set -e
+ mkdir -p '[% dest_dir %]'
+ mv -vf '[% project %]-[% c("version") %].tar.xz' '[% dest_dir %]/[% c("filename") %]'
+
# buildconf contains build options that the user can change in rbm.local.conf
# When adding a new option to buildconf, a default value should be defined
# in var/build_id, so that changing this option does not affect the build_id.