Don't use system harfbuzz

Try to build shared libraries
Add patches from Fedora to fix setopaque linkage and some other build issues
This commit is contained in:
Andrey Bondrov 2016-11-18 21:58:26 +10:00
parent 7cb21224c7
commit 7ef187377d
4 changed files with 76 additions and 3 deletions

View file

@ -0,0 +1,35 @@
diff -up chromium-54.0.2840.59/build/toolchain/linux/BUILD.gn.nullfix chromium-54.0.2840.59/build/toolchain/linux/BUILD.gn
--- chromium-54.0.2840.59/build/toolchain/linux/BUILD.gn.nullfix 2016-10-13 16:49:26.844221023 -0400
+++ chromium-54.0.2840.59/build/toolchain/linux/BUILD.gn 2016-10-13 16:50:49.882605484 -0400
@@ -31,6 +31,7 @@ gcc_toolchain("arm") {
ld = cxx
readelf = "${toolprefix}readelf"
nm = "${toolprefix}nm"
+ extra_cppflags = "-fno-delete-null-pointer-checks"
toolchain_args = {
current_cpu = "arm"
@@ -70,6 +71,7 @@ gcc_toolchain("x86") {
nm = "nm"
ar = "ar"
ld = cxx
+ extra_cppflags = "-fno-delete-null-pointer-checks"
toolchain_args = {
current_cpu = "x86"
@@ -109,6 +111,7 @@ gcc_toolchain("x64") {
nm = "nm"
ar = "ar"
ld = cxx
+ extra_cppflags = "-fno-delete-null-pointer-checks"
toolchain_args = {
current_cpu = "x64"
@@ -131,6 +134,7 @@ gcc_toolchain("mipsel") {
ld = cxx
readelf = "mipsel-linux-gnu-readelf"
nm = "mipsel-linux-gnu-nm"
+ extra_cppflags = "-fno-delete-null-pointer-checks"
toolchain_args = {
cc_wrapper = ""

View file

@ -0,0 +1,11 @@
diff -up chromium-54.0.2840.90/chrome/browser/BUILD.gn.fixme chromium-54.0.2840.90/chrome/browser/BUILD.gn
--- chromium-54.0.2840.90/chrome/browser/BUILD.gn.fixme 2016-11-04 09:52:43.712072361 -0400
+++ chromium-54.0.2840.90/chrome/browser/BUILD.gn 2016-11-04 09:53:21.495864624 -0400
@@ -605,6 +605,7 @@ split_static_library("browser") {
"//services/ui/public/cpp/input_devices",
"//ui/aura",
"//ui/compositor",
+ "//ui/snapshot",
"//ui/views/mus",
]
}

View file

@ -0,0 +1,13 @@
diff -up chromium-54.0.2840.90/cc/blink/web_layer_impl.h.setopaque chromium-54.0.2840.90/cc/blink/web_layer_impl.h
--- chromium-54.0.2840.90/cc/blink/web_layer_impl.h.setopaque 2016-11-03 09:07:03.422497483 -0400
+++ chromium-54.0.2840.90/cc/blink/web_layer_impl.h 2016-11-03 09:07:13.302307531 -0400
@@ -80,7 +80,7 @@ class WebLayerImpl : public blink::WebLa
blink::WebBlendMode blendMode() const override;
void setIsRootForIsolatedGroup(bool root) override;
bool isRootForIsolatedGroup() override;
- void setOpaque(bool opaque) override;
+ CC_BLINK_EXPORT void setOpaque(bool opaque) override;
bool opaque() const override;
void setPosition(const blink::WebFloatPoint& position) override;
blink::WebFloatPoint position() const override;
diff -up chromium-54.0.2840.90/content/renderer/child_frame_compositing_helper.cc.setopaque chromium-54.0.2840.90/content/renderer/child_frame_compositing_helper.cc

View file

@ -26,7 +26,7 @@
Summary: A fast web browser based on the Blink engine
Name: chromium-browser-stable
Version: 54.0.2840.100
Release: 1
Release: 3
License: BSD, LGPL
Group: Networking/WWW
Source0: https://commondatastorage.googleapis.com/chromium-browser-official/chromium-%{version}.tar.xz
@ -73,6 +73,11 @@ Patch30: chromium-52-pdfium-system-libtiff-libpng.patch
# (cjw) fix build with ffmpeg 2.8.x
Patch31: chromium-54-ffmpeg-2.8.patch
# From Fedora
Patch40: chromium-54.0.2840.90-setopaque.patch
Patch41: chromium-54.0.2840.59-nullfix.patch
Patch42: chromium-54.0.2840.90-aura-browser-link-to-snapshot.patch
# New from Debian
Patch500: chromium-third-party-cookies-off-by-default.patch
Patch501: chromium-ps-print.patch
@ -136,7 +141,7 @@ BuildRequires: pkgconfig(gtk+-2.0)
%if 0%{?gtk3}
BuildRequires: pkgconfig(gtk+-3.0)
%endif
BuildRequires: pkgconfig(harfbuzz)
#BuildRequires: pkgconfig(harfbuzz)
%if 0%{icu}
BuildRequires: pkgconfig(icu-i18n)
%endif
@ -214,6 +219,7 @@ your profile before changing channels.
%{_crdir}/default_apps
%{_crdir}/views_mus_resources.pak
%dir %{_crdir}/pepper
%{_crdir}/lib*.so*
%{_mandir}/man1/%{crname}*
%{_datadir}/applications/*.desktop
%{_iconsdir}/hicolor/*/apps/chromium*
@ -280,6 +286,10 @@ members of the Chromium and WebDriver teams.
%patch30 -p1
%patch31 -p1
%patch40 -p1
%patch41 -p1
%patch42 -p1
# new from debian
%patch500 -p1
%patch501 -p2
@ -376,7 +386,7 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"%{product_vendor} %{product_ve
cmp $FILE $FILE.orig && exit 1
%build
%define system_gn_list flac harfbuzz-ng libxml libxslt snappy yasm libpng zlib jsoncpp opus
%define system_gn_list flac libxml libxslt snappy yasm libpng zlib jsoncpp opus
# icu
# ffmpeg
# libevent
@ -415,6 +425,7 @@ cmp $FILE $FILE.orig && exit 1
use_libpci = true \
is_debug=false \
is_clang=false \
is_component_build=true \
google_api_key="%{google_api_key}" \
google_default_client_id="%{google_default_client_id}" \
google_default_client_secret="%{google_default_client_secret}"
@ -456,6 +467,9 @@ install -m 644 out/Release/*.pak %{buildroot}%{_crdir}/
install -m 644 out/Release/icudtl.dat %{buildroot}%{_crdir}/
cp -a out/Release/*_blob.bin %{buildroot}%{_crdir}/
# chromium components
cp -av out/Release/lib*.so* %{buildroot}%{_crdir}/
install -m 644 out/Release/locales/*.pak %{buildroot}%{_crdir}/locales/
install -m 644 out/Release/resources.pak %{buildroot}%{_crdir}/
install -m 644 chrome/browser/resources/default_apps/* %{buildroot}%{_crdir}/default_apps/