Update Debian files to 66.0.3359.117-1 and tweak base bundles

* Move master_preferences.patch from linux_rooted to Debian and Ubuntu base bundles
* Use Chromium's system toolchain unbundling in linux_rooted
* Add debian_buster base bundle
* Remove ubuntu_artful base bundle
* Add ubuntu_bionic base bundle
* Pull out common GN flags
This commit is contained in:
Eloston
2018-04-29 06:18:53 +00:00
parent ed245cb88e
commit 4cbfedfa98
32 changed files with 136 additions and 116 deletions

View File

@@ -39,7 +39,7 @@ The final size of the sandbox with build artifacts is over 5 GB. On systems with
Install base requirements: `# apt install packaging-dev python3 ninja-build`
On Debian 9 (stretch), `stretch-backports` APT source is used to obtain LLVM 5.0.
On Debian 9 (stretch), `stretch-backports` APT source is used to obtain LLVM 6.0 and debhelper 11.
#### Setting up the buildspace tree and packaging files
@@ -68,9 +68,9 @@ Packages will appear under `buildspace/`.
#### Notes for Debian derivatives
Ubuntu 17.10 (artful): Same as Debian 9 except the `ubuntu_artful` base bundle is used.
Ubuntu 18.04 (bionic): Same as Debian 9 except the `ubuntu_bionic` base bundle and the `buster` flavor are used.
Ubuntu 16.04 (xenial), Debian 8.0 (jessie), and other older versions: See [Other Linux distributions](#other-linux-distributions)
Ubuntu 16.04 (xenial), Ubuntu 17.10 (artful), Debian 8.0 (jessie), and other older versions: See [Other Linux distributions](#other-linux-distributions)
### Windows

View File

@@ -1,2 +0,0 @@
custom_toolchain="//build/toolchain/linux/unbundle:default"
host_toolchain="//build/toolchain/linux/unbundle:default"

View File

@@ -1,3 +1,5 @@
blink_symbol_level=0
clang_use_chrome_plugins=false
enable_ac3_eac3_audio_demuxing=true
enable_google_now=false
enable_hangout_services_extension=false
@@ -21,6 +23,7 @@ fieldtrial_testing_like_official_build=true
google_api_key=""
google_default_client_id=""
google_default_client_secret=""
is_clang=true
is_debug=false
is_official_build=true
optimize_webui=false
@@ -30,6 +33,7 @@ safe_browsing_mode=0
symbol_level=0
treat_warnings_as_errors=false
use_gnome_keyring=false
use_jumbo_build=true
use_official_google_api_keys=false
use_ozone=false
use_sysroot=false

View File

@@ -27,7 +27,6 @@ inox-patchset/9000-disable-metrics.patch
debian/gn/libcxx.patch
debian/gn/parallel.patch
debian/gn/narrowing.patch
debian/gn/buildflags.patch
debian/disable/fonts.patch
debian/disable/fuzzers.patch
debian/disable/welcome-page.patch
@@ -46,6 +45,7 @@ debian/fixes/connection-message.patch
debian/fixes/chromedriver-revision.patch
debian/fixes/skia_buildfix.patch
debian/warnings/sequence-point.patch
debian/warnings/initialization.patch
iridium-browser/net-cert-increase-default-key-length-for-newly-gener.patch
iridium-browser/mime_util-force-text-x-suse-ymp-to-be-downloaded.patch

View File

@@ -0,0 +1,3 @@
[basebundle]
display_name = Debian 10 (buster)
depends = linux_rooted

View File

@@ -1,2 +1,5 @@
debian/master-preferences.patch
debian/system/lcms2.patch
ungoogled-chromium/linux/manpage.patch
ungoogled-chromium/linux/fix-libstdcxx-errors.patch

View File

@@ -0,0 +1,2 @@
[version]
release_extra = stretch

View File

@@ -1,2 +1,4 @@
debian/master-preferences.patch
ungoogled-chromium/linux/manpage.patch
ungoogled-chromium/linux/fix-libstdcxx-errors.patch

View File

@@ -1,9 +1,7 @@
clang_base_path=getenv("CLANG_BASE_PATH")
clang_use_chrome_plugins=false
is_clang=true
custom_toolchain="//build/toolchain/linux/unbundle:default"
host_toolchain="//build/toolchain/linux/unbundle:default"
linux_use_bundled_binutils=false
optimize_for_size=false
use_gtk3=true
use_jumbo_build=true
use_kerberos=false
use_lld=true

View File

@@ -1,9 +1,8 @@
clang_base_path=getenv("CLANG_BASE_PATH")
clang_use_chrome_plugins=false
custom_toolchain="//build/toolchain/linux/unbundle:default"
ffmpeg_branding="ChromeOS"
gold_path=""
goma_dir=""
is_clang=true
host_toolchain="//build/toolchain/linux/unbundle:default"
link_pulseaudio=true
linux_use_bundled_binutils=false
optimize_for_size=false
@@ -12,7 +11,6 @@ use_cups=true
use_custom_libcxx=false
use_gold=true
use_gtk3=true
use_jumbo_build=true
use_kerberos=false
use_lld=true
use_openh264=false

View File

@@ -1,6 +1,5 @@
inox-patchset/chromium-vaapi-r18.patch
debian/master-preferences.patch
debian/system/vpx.patch
debian/system/icu.patch
debian/system/nspr.patch

View File

@@ -1,3 +0,0 @@
clang_use_chrome_plugins=false
is_clang=true
use_jumbo_build=true

View File

@@ -1,5 +1,3 @@
clang_base_path="/usr"
clang_use_chrome_plugins=false
is_component_build=false
is_component_ffmpeg=true
link_pulseaudio=true

View File

@@ -1,3 +0,0 @@
[basebundle]
display_name = Ubuntu 17.10 (artful)
depends = linux_rooted

View File

@@ -1,2 +0,0 @@
[version]
release_extra = artful

View File

@@ -0,0 +1,3 @@
[basebundle]
display_name = Ubuntu 18.04 (bionic)
depends = debian_buster

View File

@@ -0,0 +1,2 @@
[version]
release_extra = bionic

View File

@@ -1,7 +1,4 @@
chrome_pgo_phase=0
clang_use_chrome_plugins=false
full_wpo_on_official=false
is_clang=true
rtc_use_lto=false
target_cpu="x64"
use_jumbo_build=true

View File

@@ -2,7 +2,6 @@ debian/files
Makefile
third_party/flot/*.js
chrome/test/data/webui/i18n_process_css_test.html
third_party/ffmpeg/BUILD.gn
third_party/flac/BUILD.gn

View File

@@ -10,16 +10,15 @@ Homepage: https://github.com/Eloston/ungoogled-chromium
Rules-Requires-Root: binary-targets
Build-Depends:
debhelper (>= 11),
clang-5.0,
lld-5.0,
llvm-5.0-dev,
clang-6.0,
lld-6.0,
llvm-6.0-dev,
python,
python3,
pkg-config,
ninja-build,
python-jinja2,
ca-certificates,
time,
wget,
flex,
yasm,
@@ -87,7 +86,7 @@ Build-Depends:
libjs-jquery-flot,
libgcrypt20-dev,
libva-dev,
Standards-Version: 4.1.3
Standards-Version: 4.1.4
Package: ungoogled-chromium
Architecture: i386 amd64 arm64 armhf

View File

@@ -6,13 +6,20 @@ export DH_VERBOSE=1
# enable all build hardening flags
export DEB_BUILD_MAINT_OPTIONS=hardening=+all
export CLANG_BASE_PATH=/usr/lib/llvm-5.0
# use system LLVM via unbundling
export AR=llvm-ar-6.0
export NM=llvm-nm-6.0
export CC=clang-6.0
export CXX=clang++-6.0
# more verbose linker output
defines+=target_extra_ldflags=\"-Wl,--stats\"
export LDFLAGS+=-Wl,--stats
# extra flags to reduce warnings that aren't very useful
defines+=target_extra_cxxflags=\"-Wno-deprecated-declarations -Wno-dangling-else -Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable\"
export CXXFLAGS+=-Wno-unused-function \
-Wno-unused-variable \
-Wno-unused-but-set-variable \
-Wno-deprecated-declarations \
# set the appropriate cpu architecture
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
@@ -28,8 +35,6 @@ endif
ifeq (armhf,$(DEB_HOST_ARCH))
defines+=host_cpu=\"arm\" \
arm_use_neon=false \
blink_symbol_level=1 \
symbol_level=1 \
endif
@@ -41,8 +46,9 @@ $ungoog{gn_flags}
# can't use system ots (open text *summarizer*) since that's not google's ots (open text *sanitizer*)
# handle parallel build options
njobs=1
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
njobs=-j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
njobs=$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif
# paths to files needed by flot
@@ -54,7 +60,7 @@ flotpaths=/usr/share/javascript/jquery/*min.js \
$ungoog{build_output}/gn:
mkdir -p $ungoog{build_output} || true
./tools/gn/bootstrap/bootstrap.py -o $ungoog{build_output}/gn -s $(njobs)
./tools/gn/bootstrap/bootstrap.py -o $ungoog{build_output}/gn -s -j$(njobs)
override_dh_auto_configure:
# output compiler information
@@ -62,15 +68,16 @@ override_dh_auto_configure:
# use system flot
for file in $(flotpaths); do ln -sf $$file third_party/flot; done
# strip out system third_party libraries
rm -f base/third_party/libevent/BUILD.gn
./debian/scripts/unbundle
override_dh_auto_build-arch: $ungoog{build_output}/gn
./$ungoog{build_output}/gn gen $ungoog{build_output} --args="$(defines)" --fail-on-unused-args
ninja $(njobs) -C $ungoog{build_output} chrome chrome_sandbox content_shell chromedriver
ninja -j$(njobs) -C $ungoog{build_output} chrome chrome_sandbox content_shell chromedriver
override_dh_auto_build-indep: $ungoog{build_output}/gn
./$ungoog{build_output}/gn gen $ungoog{build_output} --args="$(defines)" --fail-on-unused-args
ninja $(njobs) -C $ungoog{build_output} packed_resources
ninja -j$(njobs) -C $ungoog{build_output} packed_resources
override_dh_auto_install-arch:
cp $ungoog{build_output}/chrome $ungoog{build_output}/chromium

View File

@@ -35,12 +35,11 @@ for lib,rule in replace_gn_files.REPLACEMENTS.items():
# remove the gn file that builds the embedded library
if os.path.lexists(rule):
os.remove(rule)
else:
# otherwise, create the missing directory
os.mkdir(libdir)
# create a symlink to the unbundle gn file
symlink = "ln -s "
path = os.path.split(rule)
if not os.path.exists(path[0]):
os.mkdir(path[0])
while path[0] != '':
path = os.path.split(path[0])
symlink += '../'

View File

@@ -9,16 +9,15 @@ Vcs-Browser: https://github.com/Eloston/ungoogled-chromium
Homepage: https://github.com/Eloston/ungoogled-chromium
Build-Depends:
debhelper (>= 9),
clang-5.0,
lld-5.0,
llvm-5.0-dev,
clang-6.0,
lld-6.0,
llvm-6.0-dev,
python,
python3,
pkg-config,
ninja-build,
python-jinja2,
ca-certificates,
time,
wget,
flex,
yasm,

View File

@@ -0,0 +1,21 @@
$ungoog{build_output}/chromium usr/lib/chromium
$ungoog{build_output}/chrome-sandbox usr/lib/chromium
$ungoog{build_output}/chrome_*.pak usr/lib/chromium
$ungoog{build_output}/resources.pak usr/lib/chromium
$ungoog{build_output}/keyboard_resources.pak usr/lib/chromium
$ungoog{build_output}/resources/en-US.pak usr/lib/chromium/locales
debian/presubj usr/share/bug/chromium
debian/master_preferences usr/lib/chromium
debian/chromium.xml usr/share/gnome-control-center/default-apps
debian/chromium.desktop usr/share/applications
debian/extensions etc/chromium.d
debian/default-flags etc/chromium.d

View File

@@ -2,7 +2,6 @@ debian/files
Makefile
third_party/flot/*.js
chrome/test/data/webui/i18n_process_css_test.html
third_party/ffmpeg/BUILD.gn
third_party/flac/BUILD.gn

View File

@@ -7,19 +7,18 @@ Uploaders:
Vcs-Git: https://github.com/Eloston/ungoogled-chromium.git
Vcs-Browser: https://github.com/Eloston/ungoogled-chromium
Homepage: https://github.com/Eloston/ungoogled-chromium
Rules-Requires-Root: no
Rules-Requires-Root: binary-targets
Build-Depends:
debhelper (>= 10),
clang-5.0,
lld-5.0,
llvm-5.0-dev,
debhelper (>= 11),
clang-6.0,
lld-6.0,
llvm-6.0-dev,
python,
python3,
pkg-config,
ninja-build,
python-jinja2,
ca-certificates,
time,
wget,
flex,
yasm,
@@ -74,6 +73,7 @@ Build-Depends:
libhunspell-dev,
libharfbuzz-dev,
libusb-1.0-0-dev,
libopenjp2-7-dev,
libmodpbase64-dev,
libnss3-dev (>= 3.12.3),
libnspr4-dev (>= 2:4.9),
@@ -84,7 +84,7 @@ Build-Depends:
libjs-jquery-flot,
libgcrypt20-dev,
libva-dev,
Standards-Version: 4.1.3
Standards-Version: 4.1.4
Package: ungoogled-chromium
Architecture: i386 amd64 arm64 armhf

View File

@@ -35,12 +35,11 @@ for lib,rule in replace_gn_files.REPLACEMENTS.items():
# remove the gn file that builds the embedded library
if os.path.lexists(rule):
os.remove(rule)
else:
# otherwise, create the missing directory
os.mkdir(libdir)
# create a symlink to the unbundle gn file
symlink = "ln -s "
path = os.path.split(rule)
if not os.path.exists(path[0]):
os.mkdir(path[0])
while path[0] != '':
path = os.path.split(path[0])
symlink += '../'

View File

@@ -4,14 +4,17 @@ set -eux
# Simple build script for Linux
# Generally, utilikit configuration types using Clang read CLANG_BASE_PATH to determine the Clang installation path.
# If it needs to be changed, add "export CLANG_BASE_PATH=..." below or set it from outside the script.
true ${CLANG_BASE_PATH:=/usr} # http://www.tldp.org/LDP/abs/html/parameter-substitution.html
rm -rf out || true
mkdir out
mkdir $ungoog{build_output}
./ungoogled_packaging/scripts/apply_patch_series.py
# Set commands or paths to LLVM-provided tools here
export AR=llvm-ar
export NM=llvm-nm
export CC=clang
export CXX=clang++
./tools/gn/bootstrap/bootstrap.py -o $ungoog{build_output}/gn -s
./$ungoog{build_output}/gn gen $ungoog{build_output} --args='$ungoog{gn_args_string}' --fail-on-unused-args
ninja -C $ungoog{build_output} chrome chrome_sandbox chromedriver

View File

@@ -1,3 +1,6 @@
description: explicitly construct a vector
author: Michael Gilbert <mgilbert@debian.org>
--- a/chrome/browser/supervised_user/supervised_user_url_filter.cc
+++ b/chrome/browser/supervised_user/supervised_user_url_filter.cc
@@ -368,7 +368,7 @@ SupervisedUserURLFilter::GetFilteringBeh

View File

@@ -1,51 +0,0 @@
description: support build flags passed in the --args to gn
author: Michael Gilbert <mgilbert@debian.org>
--- a/build/toolchain/linux/BUILD.gn
+++ b/build/toolchain/linux/BUILD.gn
@@ -5,6 +5,12 @@
import("//build/config/sysroot.gni")
import("//build/toolchain/gcc_toolchain.gni")
+declare_args() {
+ target_extra_cflags = ""
+ target_extra_ldflags = ""
+ target_extra_cxxflags = ""
+}
+
clang_toolchain("clang_arm") {
toolprefix = "arm-linux-gnueabihf-"
toolchain_args = {
@@ -50,6 +56,10 @@ gcc_toolchain("arm") {
readelf = "${toolprefix}readelf"
nm = "${toolprefix}nm"
+ extra_cflags = target_extra_cflags
+ extra_ldflags = target_extra_ldflags
+ extra_cxxflags = target_extra_cxxflags
+
toolchain_args = {
current_cpu = "arm"
current_os = "linux"
@@ -103,6 +113,10 @@ gcc_toolchain("x86") {
# Output linker map files for binary size analysis.
enable_linker_map = true
+ extra_cflags = target_extra_cflags
+ extra_ldflags = target_extra_ldflags
+ extra_cxxflags = target_extra_cxxflags
+
toolchain_args = {
current_cpu = "x86"
current_os = "linux"
@@ -156,6 +170,10 @@ gcc_toolchain("x64") {
# Output linker map files for binary size analysis.
enable_linker_map = true
+ extra_cflags = target_extra_cflags
+ extra_ldflags = target_extra_ldflags
+ extra_cxxflags = target_extra_cxxflags
+
toolchain_args = {
current_cpu = "x64"
current_os = "linux"

View File

@@ -0,0 +1,30 @@
description: use system lcms2
author: Michael Gilbert <mgilbert@debian.org>
bug-debian: http://bugs.debian.org/879153
--- a/third_party/pdfium/BUILD.gn
+++ b/third_party/pdfium/BUILD.gn
@@ -192,6 +192,7 @@ jumbo_static_library("pdfium") {
":fxge",
":fxjs",
":pwl",
+ "third_party:lcms2",
"third_party:bigint",
"third_party:pdfium_base",
"third_party:skia_shared",
@@ -682,6 +683,7 @@ jumbo_static_library("fpdftext") {
configs += [ ":pdfium_core_config" ]
deps = [
":fxcrt",
+ "third_party:lcms2",
]
}
@@ -1080,6 +1082,7 @@ jumbo_static_library("fxge") {
deps = [
":fxcrt",
+ "third_party:lcms2",
]
if (is_component_build || use_system_freetype) {

View File

@@ -0,0 +1,14 @@
description: source_ could be uninitialized
author: Michael Gilbert <mgilbert@debian.org>
--- a/third_party/cacheinvalidation/src/google/cacheinvalidation/include/types.h
+++ b/third_party/cacheinvalidation/src/google/cacheinvalidation/include/types.h
@@ -174,7 +174,7 @@ class ErrorInfo {
*/
class ObjectId {
public:
- ObjectId() : is_initialized_(false) {}
+ ObjectId() : is_initialized_(false), source_(0) {}
/* Creates an object id for the given source and name (the name is copied). */
ObjectId(int source, const string& name)