[Pkg-chromium-commit] [pkg-chromium] 02/03: release 55.0.2883.75-1~deb8u1

Michael Gilbert mgilbert at moszumanska.debian.org
Sun Dec 11 21:48:19 UTC 2016


This is an automated email from the git hooks/post-receive script.

mgilbert pushed a commit to branch jessie
in repository pkg-chromium.

commit 7b3d74cb714bc88345e7da1a7c97b18197e47adc
Author: Michael Gilbert <mgilbert at debian.org>
Date:   Sun Dec 11 20:15:33 2016 +0000

    release 55.0.2883.75-1~deb8u1
---
 debian/changelog                   |  62 +++++++++++++++++++
 debian/clean                       |   6 ++
 debian/patches/clang.patch         |  35 +++++++----
 debian/patches/clang3.5.patch      |  37 ++++++++++++
 debian/patches/disable/promo.patch |   2 +-
 debian/patches/gn.patch            |  22 +++++++
 debian/patches/manpage.patch       |  11 ----
 debian/patches/nspr.patch          |  51 ++++++++++++----
 debian/patches/series              |   4 ++
 debian/patches/skia.patch          |  16 +++++
 debian/rules                       | 121 ++++++++++++-------------------------
 debian/scripts/unbundle            |  47 ++++++++++++++
 12 files changed, 295 insertions(+), 119 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 35657be..cc6bec4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,65 @@
+chromium-browser (55.0.2883.75-1~deb8u1) jessie-security; urgency=medium
+
+  * New upstream stable release:
+    - CVE-2016-5181: Universal XSS in Blink. Credit to Anonymous
+    - CVE-2016-5182: Heap overflow in Blink. Credit to Giwan Go
+    - CVE-2016-5183: Use after free in PDFium. Credit to Anonymous
+    - CVE-2016-5184: Use after free in PDFium. Credit to Anonymous
+    - CVE-2016-5185: Use after free in Blink. Credit to cloudfuzzer
+    - CVE-2016-5186: Out of bounds read in DevTools. Credit to Abdulrahman
+    - CVE-2016-5187: URL spoofing. Credit to Luan Herrera
+    - CVE-2016-5188: UI spoofing. Credit to Luan Herrera
+      haojunhou at gmail.com
+    - CVE-2016-5189: URL spoofing. Credit to xisigr
+      Alqabandi
+    - CVE-2016-5190: Use after free in Internals. Credit to Atte Kettunen
+    - CVE-2016-5191: Universal XSS in Bookmarks. Credit to Gareth Hughes
+    - CVE-2016-5192: Cross-origin bypass in Blink. Credit to
+    - CVE-2016-5193: Scheme bypass. Credit to Yuyang ZHOU
+    - CVE-2016-5194: Various fixes from internal audits, fuzzing and other
+      initiatives
+    - CVE-2016-5198: Out of bounds memory access in V8. Credit to Tencent Keen
+      Security Lab
+    - CVE-2016-5200: Out of bounds memory access in V8. Credit to Choongwoo Han
+    - CVE-2016-5201: Info leak in extensions. Credit to Rob Wu
+    - CVE-2016-5202: Various fixes from internal audits, fuzzing and other
+      initiatives
+    - CVE-2016-5203: Use after free in PDFium. Credit to Anonymous
+    - CVE-2016-5204: Universal XSS in Blink. Credit to Mariusz Mlynski
+    - CVE-2016-5205: Universal XSS in Blink. Credit to Anonymous
+    - CVE-2016-5206: Same-origin bypass in PDFium. Credit to Rob Wu
+    - CVE-2016-5207: Universal XSS in Blink. Credit to Mariusz Mlynski
+    - CVE-2016-5208: Universal XSS in Blink. Credit to Mariusz Mlynski
+    - CVE-2016-5209: Out of bounds write in Blink. Credit to Giwan Go
+    - CVE-2016-5210: Out of bounds write in PDFium. Credit to Ke Liu
+    - CVE-2016-5211: Use after free in PDFium. Credit to Anonymous
+    - CVE-2016-5212: Local file disclosure in DevTools. Credit to Khalil Zhani
+    - CVE-2016-5213: Use after free in V8. Credit to Khalil Zhani
+    - CVE-2016-5214: File download protection bypass. Credit to Jonathan Birch
+      and MSVR
+    - CVE-2016-5215: Use after free in Webaudio. Credit to Looben Yang
+    - CVE-2016-5216: Use after free in PDFium. Credit to Anonymous
+    - CVE-2016-5217: Use of unvalidated data in PDFium. Credit to Rob Wu
+    - CVE-2016-5218: Address spoofing in Omnibox. Credit to Abdulrahman
+      Alqabandi
+    - CVE-2016-5219: Use after free in V8. Credit to Rob Wu
+    - CVE-2016-5220: Local file access in PDFium. Credit to Rob Wu
+    - CVE-2016-5221: Integer overflow in ANGLE. Credit to Tim Becker
+    - CVE-2016-5222: Address spoofing in Omnibox. Credit to xisigr
+    - CVE-2016-5223: Integer overflow in PDFium. Credit to Hwiwon Lee
+    - CVE-2016-5224: Same-origin bypass in SVG. Credit to Roeland Krak
+    - CVE-2016-5225: CSP bypass in Blink. Credit to Scott Helme
+    - CVE-2016-5226: Limited XSS in Blink. Credit to Jun Kokatsu
+    - CVE-2016-9650: CSP Referrer disclosure. Credit to Jakub Żoczek
+    - CVE-2016-9651: Private property access in V8. Credit to Guang Gong
+    - CVE-2016-9652: Various fixes from internal audits, fuzzing and other
+      initiatives
+    - Certificate validity is now independent of the browser build date
+      (closes: #844631).
+    - No longer supports gyp build system, so update to use gn instead.
+
+ -- Michael Gilbert <mgilbert at debian.org>  Sun, 11 Dec 2016 04:48:45 +0000
+
 chromium-browser (53.0.2785.143-1~deb8u1) jessie-security; urgency=medium
 
   * New upstream security release:
diff --git a/debian/clean b/debian/clean
new file mode 100644
index 0000000..54e2d68
--- /dev/null
+++ b/debian/clean
@@ -0,0 +1,6 @@
+build/secondary/third_party/libjpeg_turbo/BUILD.gn
+third_party/libpng/BUILD.gn
+third_party/libwebp/BUILD.gn
+third_party/libxml/BUILD.gn
+third_party/libxslt/BUILD.gn
+third_party/yasm/yasm_assemble.gni
diff --git a/debian/patches/clang.patch b/debian/patches/clang.patch
index 529ec31..787899d 100644
--- a/debian/patches/clang.patch
+++ b/debian/patches/clang.patch
@@ -1,16 +1,25 @@
 description: use system clang compilers
 author: Michael Gilbert <mgilbert at debian.org>
 
---- a/build/common.gypi
-+++ b/build/common.gypi
-@@ -5985,8 +5985,8 @@
-     ['clang==1 and ((OS!="mac" and OS!="ios") or clang_xcode==0) '
-         'and OS!="win"', {
-       'make_global_settings': [
--        ['CC', '<(make_clang_dir)/bin/clang'],
--        ['CXX', '<(make_clang_dir)/bin/clang++'],
-+        ['CC', '/usr/bin/clang'],
-+        ['CXX', '/usr/bin/clang++'],
-         ['CC.host', '$(CC)'],
-         ['CXX.host', '$(CXX)'],
-       ],
+--- a/build/toolchain/gcc_toolchain.gni
++++ b/build/toolchain/gcc_toolchain.gni
+@@ -482,7 +482,7 @@ template("clang_toolchain") {
+   }
+ 
+   gcc_toolchain(target_name) {
+-    prefix = rebase_path("$clang_base_path/bin", root_build_dir)
++    prefix = "/usr/bin"
+     cc = "$prefix/clang"
+     cxx = "$prefix/clang++"
+     ld = cxx
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -407,7 +407,7 @@ config("compiler") {
+   # clang-cl (used if is_win) doesn't expose this flag.
+   # Currently disabled for nacl since its toolchain lacks this flag (too old).
+   # TODO(zforman): Once nacl's toolchain is updated, remove check.
+-  if (is_clang && is_linux) {
++  if (false) {
+     absolute_path = rebase_path("//.")
+     cflags += [ "-fdebug-prefix-map=$absolute_path=." ]
+   }
diff --git a/debian/patches/clang3.5.patch b/debian/patches/clang3.5.patch
new file mode 100644
index 0000000..794369c
--- /dev/null
+++ b/debian/patches/clang3.5.patch
@@ -0,0 +1,37 @@
+--- a/services/ui/public/cpp/gles2_context.cc
++++ b/services/ui/public/cpp/gles2_context.cc
+@@ -46,7 +46,7 @@ bool GLES2Context::Initialize(
+   gpu::CommandBuffer* command_buffer = command_buffer_proxy_impl_.get();
+   gpu::GpuControl* gpu_control = command_buffer_proxy_impl_.get();
+ 
+-  constexpr gpu::SharedMemoryLimits default_limits;
++  constexpr gpu::SharedMemoryLimits default_limits{};
+   gles2_helper_.reset(new gpu::gles2::GLES2CmdHelper(command_buffer));
+   if (!gles2_helper_->Initialize(default_limits.command_buffer_size))
+     return false;
+--- a/chrome/common/extensions/chrome_extensions_client.h
++++ b/chrome/common/extensions/chrome_extensions_client.h
+@@ -57,9 +57,9 @@ class ChromeExtensionsClient : public Ex
+   static ChromeExtensionsClient* GetInstance();
+ 
+  private:
+-  const ChromeAPIPermissions chrome_api_permissions_;
+-  const ExtensionsAPIPermissions extensions_api_permissions_;
+-  const ChromePermissionMessageProvider permission_message_provider_;
++  ChromeAPIPermissions chrome_api_permissions_;
++  ExtensionsAPIPermissions extensions_api_permissions_;
++  ChromePermissionMessageProvider permission_message_provider_;
+ 
+   // A whitelist of extensions that can script anywhere. Do not add to this
+   // list (except in tests) without consulting the Extensions team first.
+--- a/services/ui/surfaces/surfaces_context_provider.cc
++++ b/services/ui/surfaces/surfaces_context_provider.cc
+@@ -77,7 +77,7 @@ bool SurfacesContextProvider::BindToCurr
+   gpu::CommandBuffer* command_buffer = command_buffer_proxy_impl_.get();
+ 
+   gles2_helper_.reset(new gpu::gles2::GLES2CmdHelper(command_buffer));
+-  constexpr gpu::SharedMemoryLimits default_limits;
++  constexpr gpu::SharedMemoryLimits default_limits{};
+   if (!gles2_helper_->Initialize(default_limits.command_buffer_size))
+     return false;
+   gles2_helper_->SetAutomaticFlushes(false);
diff --git a/debian/patches/disable/promo.patch b/debian/patches/disable/promo.patch
index 9b8b2cf..a087e26 100644
--- a/debian/patches/disable/promo.patch
+++ b/debian/patches/disable/promo.patch
@@ -4,7 +4,7 @@ bug-debian: http://bugs.debian.org/634101
 
 --- a/chrome/browser/ui/app_list/app_list_service.cc
 +++ b/chrome/browser/ui/app_list/app_list_service.cc
-@@ -156,7 +156,7 @@ void AppListService::RegisterPrefs(PrefR
+@@ -155,7 +155,7 @@ void AppListService::RegisterPrefs(PrefR
  
    // Identifies whether we should show the app launcher promo or not. This
    // becomes false when the user dismisses the promo.
diff --git a/debian/patches/gn.patch b/debian/patches/gn.patch
new file mode 100644
index 0000000..66f4a43
--- /dev/null
+++ b/debian/patches/gn.patch
@@ -0,0 +1,22 @@
+description: respect specified number of parallel jobs while bootstrapping gn
+author: Michael Gilbert <mgilbert at debian.org>
+
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -102,6 +102,7 @@ def main(argv):
+   parser.add_option('--gn-gen-args', help='Args to pass to gn gen --args')
+   parser.add_option('-v', '--verbose', action='store_true',
+                     help='Log more details')
++  parser.add_option('-j', '--jobs', help='Number of jobs')
+   options, args = parser.parse_args(argv)
+ 
+   if args:
+@@ -186,6 +187,8 @@ def build_gn_with_ninja_manually(tempdir
+   cmd = ['ninja', '-C', tempdir]
+   if options.verbose:
+     cmd.append('-v')
++  if options.jobs:
++    cmd.append('-j'+str(options.jobs))
+ 
+   if is_win:
+     cmd.append('gn.exe')
diff --git a/debian/patches/manpage.patch b/debian/patches/manpage.patch
index 00b025a..f8d3823 100644
--- a/debian/patches/manpage.patch
+++ b/debian/patches/manpage.patch
@@ -40,14 +40,3 @@ Author: Daniel Echeverry <epsilon77 at gmail.com>
  <http://library.gnome.org/devel/gtk/stable/gtk-x11.html>
  
  .SH ENVIRONMENT
---- a/chrome/chrome_exe.gypi
-+++ b/chrome/chrome_exe.gypi
-@@ -117,7 +117,7 @@
-                 }, { # else branding!="Chrome"
-                   'variables': {
-                     'name': 'Chromium',
--                    'filename': 'chromium-browser',
-+                    'filename': 'chromium',
-                     'confdir': 'chromium',
-                   },
-                 }],
diff --git a/debian/patches/nspr.patch b/debian/patches/nspr.patch
index 4df6406..863300d 100644
--- a/debian/patches/nspr.patch
+++ b/debian/patches/nspr.patch
@@ -1,16 +1,5 @@
 Include system copy of prtime.h
 
---- a/base/base.gypi
-+++ b/base/base.gypi
-@@ -676,8 +676,6 @@
-           'third_party/dmg_fp/g_fmt.cc',
-           'third_party/icu/icu_utf.cc',
-           'third_party/icu/icu_utf.h',
--          'third_party/nspr/prtime.cc',
--          'third_party/nspr/prtime.h',
-           'third_party/superfasthash/superfasthash.c',
-           'third_party/xdg_mime/xdgmime.h',
-           'threading/non_thread_safe.h',
 --- a/base/time/pr_time_unittest.cc
 +++ b/base/time/pr_time_unittest.cc
 @@ -7,7 +7,7 @@
@@ -33,3 +22,43 @@ Include system copy of prtime.h
  #include "build/build_config.h"
  
  namespace base {
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -467,7 +467,6 @@ def write_gn_ninja(path, root_gen_dir, o
+       'base/third_party/dmg_fp/dtoa_wrapper.cc',
+       'base/third_party/dmg_fp/g_fmt.cc',
+       'base/third_party/icu/icu_utf.cc',
+-      'base/third_party/nspr/prtime.cc',
+       'base/threading/non_thread_safe_impl.cc',
+       'base/threading/post_task_and_reply_impl.cc',
+       'base/threading/sequenced_task_runner_handle.cc',
+@@ -567,7 +566,7 @@ def write_gn_ninja(path, root_gen_dir, o
+     }
+ 
+   if is_linux:
+-    libs.extend(['-lrt', '-latomic'])
++    libs.extend(['-lrt', '-latomic', '-lnspr4'])
+     ldflags.extend(['-pthread'])
+ 
+     static_libraries['xdg_user_dirs'] = {
+--- a/base/BUILD.gn
++++ b/base/BUILD.gn
+@@ -52,6 +52,9 @@ config("base_flags") {
+       "-Wno-char-subscripts",
+     ]
+   }
++  ldflags = [
++    "-lnspr4",
++  ]
+ }
+ 
+ config("base_implementation") {
+@@ -823,8 +826,6 @@ component("base") {
+     "third_party/dmg_fp/g_fmt.cc",
+     "third_party/icu/icu_utf.cc",
+     "third_party/icu/icu_utf.h",
+-    "third_party/nspr/prtime.cc",
+-    "third_party/nspr/prtime.h",
+     "third_party/superfasthash/superfasthash.c",
+     "threading/non_thread_safe.h",
+     "threading/non_thread_safe_impl.cc",
diff --git a/debian/patches/series b/debian/patches/series
index 7673b00..2363026 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,5 +1,8 @@
 manpage.patch
+
+gn.patch
 clang.patch
+clang3.5.patch
 
 disable/promo.patch
 disable/google-api-warning.patch
@@ -10,4 +13,5 @@ third-party-cookies-off-by-default.patch
 ps-print.patch
 chromedriver-revision.patch
 
+skia.patch
 webui.patch
diff --git a/debian/patches/skia.patch b/debian/patches/skia.patch
new file mode 100644
index 0000000..8fca7ac
--- /dev/null
+++ b/debian/patches/skia.patch
@@ -0,0 +1,16 @@
+description: avoid a clang 4.0 compiler intrinsic
+author: Michael Gilbert <mgilbert at debian.org>
+
+--- a/third_party/skia/src/opts/SkRasterPipeline_opts.h
++++ b/third_party/skia/src/opts/SkRasterPipeline_opts.h
+@@ -40,8 +40,10 @@ static inline void SK_VECTORCALL stage_1
+                                            Sk4f  r, Sk4f  g, Sk4f  b, Sk4f  a,
+                                            Sk4f dr, Sk4f dg, Sk4f db, Sk4f da) {
+ #if defined(__clang__)
++#if __has_builtin(__builtin_assume)
+     __builtin_assume(tail > 0);  // This flourish lets Clang compile away any tail==0 code.
+ #endif
++#endif
+     kernel(st->ctx<void*>(), x,tail, r,g,b,a, dr,dg,db,da);
+     if (kCallNext) {
+         st->next(x,tail, r,g,b,a, dr,dg,db,da);
diff --git a/debian/rules b/debian/rules
index 9f77101..f2a8589 100755
--- a/debian/rules
+++ b/debian/rules
@@ -12,89 +12,41 @@ export LDFLAGS+=-Wl,--no-keep-memory -Wl,--reduce-memory-overheads -Wl,--hash-si
 # more verbose linker output
 export LDFLAGS+=-Wl,--trace -Wl,--stats
 
-# use the gold linker to avoid memory exhaustion issues at link time
-export CFLAGS+=-fuse-ld=gold
-export CXXFLAGS+=-fuse-ld=gold
-
-# treat all warnings as errors
-defines=werror=
-
 # use clang instead of gcc
-defines+=clang=1
-defines+=clang_use_chrome_plugins=
+defines=is_clang=true
+defines+=clang_use_chrome_plugins=false
+
+# set the appropriate cpu architecture
+ifeq (i386,$(shell dpkg-architecture -qDEB_HOST_ARCH))
+defines+=host_cpu=\"x86\"
+endif
+ifeq (amd64,$(shell dpkg-architecture -qDEB_HOST_ARCH))
+defines+=host_cpu=\"x64\"
+endif
 
 # disabled features
-defines+=use_ozone=0 \
-         use_gconf=0 \
-         use_sysroot=0 \
-         use_allocator=none \
-         linux_breakpad=0 \
-         linux_use_libgps=0 \
-         linux_use_gold_flags=0 \
-         linux_use_bundled_gold=0 \
-         linux_use_bundled_binutils=0 \
-         remoting=0 \
-         disable_nacl=1 \
-         enable_remoting_host=0 \
+defines+=is_debug=false \
+         use_gtk3=false \
+         use_ozone=false \
+         use_gconf=false \
+         use_sysroot=false \
+         use_gnome_keyring=false \
+         treat_warnings_as_errors=false \
+         enable_nacl=false \
+         enable_nacl_nonsfi=false \
+         enable_google_now=false \
+         enable_hangout_services_extension=false \
+         enable_iterator_debugging=false \
+         gold_path=\"\" \
+         linux_use_bundled_binutils=false \
 
 # enabled features
-defines+=enable_webrtc=1 \
-         use_gio=1 \
-         use_pulseaudio=1 \
-         use_gnome_keyring=1 \
-         linux_link_libpci=1 \
-         linux_link_gsettings=1 \
-         linux_link_libspeechd=1 \
-         linux_link_gnome_keyring=1 \
-
-# system libraries to use
-defines+=use_system_re2=1 \
-         use_system_yasm=1 \
-         use_system_opus=1 \
-         use_system_zlib=1 \
-         use_system_speex=1 \
-         use_system_expat=1 \
-         use_system_snappy=1 \
-         use_system_libpng=1 \
-         use_system_libxml=1 \
-         use_system_libjpeg=1 \
-         use_system_libwebp=1 \
-         use_system_libxslt=1 \
-         use_system_libsrtp=1 \
-         use_system_jsoncpp=1 \
-         use_system_libevent=1 \
-         use_system_xdg_utils=1 \
-
-# need to use embedded harfbuzz to avoid division by zero
-defines+=use_system_harfbuzz=0 \
-
-# enable proprietary codecs
-defines+=proprietary_codecs=1 \
-         ffmpeg_branding=Chrome \
-
-# use embedded protobuf for now (bug #764911)
-defines+=use_system_protobuf=0 \
-
-# icu
-defines+=use_system_icu=0 \
-         #icu_use_data_file_flag=0 \
-         #want_separate_host_toolset=0 \
-
-# embedded libraries (0 is the default, so just making some notes about the issues)
-#  use_system_libusb=0 requires modified source that exposes libusb_interrupt_handle_event api
-#  use_system_libvpx=0 requires modified source that exposes different api
-#  use_system_sqlite=0 build fails
-#  use_system_ffmpeg=0 build fails
-#  can't use system nss since net/third_party/nss is heavily patched
-#  can't use system ots (open text *summarizer*) since that's not google's ots (open text *sanitizer*)
-
-# make gyp a little more informative
-options+=--check \
-         --debug=includes \
-
-# avoid the need for a special src directory (--depth=. seems to require --no-parallel)
-options+=--depth=. \
-         --no-parallel \
+defines+=use_gio=true \
+         use_gold=true \
+         use_pulseaudio=false \
+         link_pulseaudio=false \
+         proprietary_codecs=true \
+         ffmpeg_branding=\"Chrome\" \
 
 # handle parallel build options
 ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
@@ -105,18 +57,20 @@ endif
 flotpaths=/usr/share/javascript/jquery/*min.js \
           /usr/share/javascript/jquery-flot/*min.js \
 
-# files to exclude from the upstream tarball
-excluded=native_client/NOTICE \
-	 third_party/libsrtp/srtp/doc/rfc3711.txt \
-
 %:
 	dh $@ --parallel
 
 override_dh_auto_configure:
 	for file in $(flotpaths); do ln -sf $$file third_party/flot; done
-	GYP_DEFINES="$(defines)" ./build/gyp_chromium $(options)
+	# strip out system third_party libraries
+	./debian/scripts/unbundle
+	# build gn
+	./tools/gn/bootstrap/bootstrap.py -v -s $(njobs)
+	# configure
+	./out/Release/gn gen out/Release --args="$(defines)"
 
 override_dh_auto_build:
+	./out/Release/gn gen out/Release --args="$(defines)"
 	ninja $(njobs) -C out/Release chrome chrome_sandbox chromedriver
 	mv out/Release/chrome out/Release/chromium || true
 	mv out/Release/chrome.1 out/Release/chromium.1 || true
@@ -152,6 +106,7 @@ override_dh_auto_clean:
 	find . -name \*.pyc -execdir rm -rf {} \;
 	#find . -name config.sub -execdir rm -rf {} \;
 	#find . -name config.guess -execdir rm -rf {} \;
+	dh_auto_clean
 
 ###################### upstream source downloading ############################
 
diff --git a/debian/scripts/unbundle b/debian/scripts/unbundle
new file mode 100755
index 0000000..7e1aaf9
--- /dev/null
+++ b/debian/scripts/unbundle
@@ -0,0 +1,47 @@
+#!/usr/bin/python3
+
+import os
+import sys
+import shutil
+
+sys.path.append("build/linux/unbundle")
+
+import replace_gn_files
+
+def strip(path):
+    if os.path.exists(path):
+        for filename in os.listdir(path):
+            remove=True
+            for extension in ('.py','.gn','.gni','google','chromium'):
+                if filename.endswith(extension):
+                    remove=False
+            if remove:
+                removal=os.path.join(path,filename)
+                print('removing: %s'%removal)
+                if os.path.isdir(removal):
+                    shutil.rmtree(removal)
+                else:
+                    os.remove(removal)
+
+replacements = ('libjpeg','libpng','libwebp','libxml','libxslt','yasm')
+
+for lib,rule in replace_gn_files.REPLACEMENTS.items():
+    if lib in replacements:
+        # remove conflicting embedded third party source files
+        strip(os.path.dirname(rule))
+        strip(os.path.join('third_party',lib))
+        # remove the gn file that builds the embedded library
+        if os.path.lexists(rule):
+            os.remove(rule)
+        # create a symlink to the unbundle gn file
+        symlink = "ln -s "
+        path = os.path.split(rule)
+        while path[0] != '':
+            path = os.path.split(path[0])
+            symlink += '../'
+        symlink += "build/linux/unbundle/%s.gn %s"%(lib,rule)
+        if os.system(symlink):
+            raise RuntimeError("error creating symlink",symlink)
+
+# libjpeg_turbo is unlike all the others, so clean it manually here
+strip('third_party/libjpeg_turbo')

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-chromium/pkg-chromium.git



More information about the Pkg-chromium-commit mailing list