]> git.pld-linux.org Git - packages/chromium-browser.git/blobdiff - clean-source.sh
- pl
[packages/chromium-browser.git] / clean-source.sh
index 44828c91e92b7256e535cb61959ed43ec1b9f847..6f9b68d885df8d14c24f2dcdb2ac684b2794020d 100755 (executable)
@@ -8,6 +8,7 @@ export LC_ALL=C
 # "v8=0" means "do not remove v8"
 eval "$@"
 
+# {{{ remove nonessential dirs
 # Strip tarball from some big directories not needed on the linux platform
 # https://code.google.com/p/chromium/wiki/LinuxPackaging
 # initial list from src/tools/export_tarball/export_tarball.py
@@ -27,7 +28,11 @@ remove_nonessential_dirs() {
                -name '*.sln' -o \
                -name '*.mm' -o \
                -name '*.m' \
-       ')' | xargs rm -vf
+       ')' '!' -type d '(' \
+               '!' -path './remoting/host/continue_window_mac.mm' \
+               '!' -path './remoting/host/disconnect_window_mac.mm' \
+       ')' \
+               -print -delete
 
        find -regextype posix-extended \
                -regex '.*_(win|cros|mac)_.*.xtb' \
@@ -37,31 +42,30 @@ remove_nonessential_dirs() {
        for dir in \
        v8/benchmarks \
        v8/src/arm \
-       v8/src/d8* \
        third_party/chromite \
        android_webview \
        ash/resources/default_100_percent/cros_ \
        ash/resources/default_200_percent/cros_ \
        ash/shell/cocoa \
-       ash/system/chromeos \
+       ash/system/chromeos_ \
        base/android \
-       base/chromeos \
+       base/chromeos_ \
        base/ios \
        breakpad/src/client/mac \
        breakpad/src/common/android \
        breakpad/src/common/mac \
        breakpad/src/tools/mac \
        build/mac \
-       build/win \
+       build/win_ \
        chrome/android \
        chrome/app/android \
        chrome/app/resources/terms/chromeos \
        chrome/app/theme/default_100_percent/cros_ \
-       chrome/app/theme/default_100_percent/mac \
-       chrome/app/theme/default_100_percent/win \
+       chrome/app/theme/default_100_percent/mac_ \
+       chrome/app/theme/default_100_percent/win_ \
        chrome/app/theme/default_200_percent/cros_ \
        chrome/app/theme/default_200_percent/mac \
-       chrome/app/theme/default_200_percent/win \
+       chrome/app/theme/default_200_percent/win_ \
        chrome/app/theme/touch_100_percent/win \
        chrome/app/theme/touch_140_percent/win \
        chrome/app/theme/touch_180_percent/win \
@@ -69,20 +73,20 @@ remove_nonessential_dirs() {
        chrome/browser/chromeos/cros \
        chrome/browser/extensions/docs \
        chrome/browser/history/android \
-       chrome/browser/mac \
+       chrome/browser/mac_ \
        chrome/browser/resources/about_welcome_android \
        chrome/browser/resources/chromeos_ \
        chrome/browser/resources/ntp_android \
        chrome/browser/resources/options/chromeos_ \
        chrome/browser/resources/shared/css/chromeos \
        chrome/browser/resources/shared/js/chromeos_ \
-       chrome/browser/ui/android \
+       chrome/browser/ui/android_ \
        chrome/browser/ui/cocoa \
        chrome/browser/ui/webui/chromeos \
        chrome/browser/ui/webui/ntp/android \
        chrome/browser/ui/webui/options/chromeos \
        chrome/common/extensions/docs \
-       chrome/common/mac \
+       chrome/common/mac_ \
        chrome/installer/mac \
        chrome/installer/mac/third_party/xz/config/mac \
        chrome/installer/tools \
@@ -94,7 +98,6 @@ remove_nonessential_dirs() {
        chrome/tools/build/mac \
        chrome/tools/build/win \
        chrome_frame \
-       cloud_print/service/win \
        cloud_print/virtual_driver/win \
        content/app/android \
        content/browser/android \
@@ -115,7 +118,6 @@ remove_nonessential_dirs() {
        media/audio/ios \
        media/audio/mac \
        media/audio/win \
-       media/base/android \
        media/tools \
        media/video/capture/mac \
        media/video/capture/win \
@@ -130,12 +132,12 @@ remove_nonessential_dirs() {
        native_client/src/trusted/desc/win \
        native_client/src/trusted/nonnacl_util/win \
        native_client/src/trusted/platform_qualify/win \
+       native_client/toolchain \
        native_client/tools \
        native_client/tools/trusted_cross_toolchains \
        native_client_sdk \
        native_client_sdk/src/libraries/win \
        net/android \
-       net/tools \
        net/tools/testserver \
        npapi/npspy/windows \
        o3d \
@@ -146,11 +148,11 @@ remove_nonessential_dirs() {
        ppapi/native_client/src/tools \
        ppapi/native_client/src/trusted/plugin/win \
        ppapi/native_client/tools \
-       remoting/host/installer/mac \
+       remoting/host/installer/mac_ \
        remoting/host/installer/win \
-       remoting/host/mac \
+       remoting/host/mac_ \
        remoting/host/setup/win \
-       remoting/host/win \
+       remoting/host/win_ \
        rlz/examples \
        rlz/mac \
        rlz/win \
@@ -158,7 +160,7 @@ remove_nonessential_dirs() {
        sdch/ios \
        sdch/mac \
        skia/config/win \
-       sync/tools \
+       sync/tools_ \
        tcmalloc/chromium/src/windows \
        tcmalloc/vendor/src/windows \
        third_party/WebKit/Source/JavaScriptCore/docs \
@@ -286,9 +288,9 @@ remove_nonessential_dirs() {
        third_party/WebKit/Tools/DumpRenderTree/mac \
        third_party/WebKit/Tools/DumpRenderTree/qt \
        third_party/WebKit/Tools/DumpRenderTree/win \
-       third_party/angle/extensions \
-       third_party/angle/samples \
-       third_party/angle/samples/gles2_book \
+       third_party/angle_dx11/extensions \
+       third_party/angle_dx11/samples \
+       third_party/angle_dx11/samples/gles2_book \
        third_party/boost \
        third_party/bsdiff \
        third_party/bspatch \
@@ -298,12 +300,34 @@ remove_nonessential_dirs() {
        third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android \
        third_party/ffmpeg/binaries \
        third_party/ffmpeg/chromium/binaries/Chromium/win \
+       third_party/ffmpeg/chromium/config/Chrome/linux/arm \
        third_party/ffmpeg/chromium/config/Chrome/mac \
        third_party/ffmpeg/chromium/config/Chrome/win \
+       third_party/ffmpeg/chromium/config/ChromeOS/linux/arm \
+       third_party/ffmpeg/chromium/config/Chromium/linux/arm \
        third_party/ffmpeg/chromium/config/Chromium/mac \
        third_party/ffmpeg/chromium/config/Chromium/win \
+       third_party/ffmpeg/chromium/config/ChromiumOS/linux/arm \
        third_party/ffmpeg/chromium/include/win \
-       third_party/ffmpeg/doc \
+       third_party/ffmpeg/doc_ \
+       third_party/ffmpeg/libavcodec/alpha \
+       third_party/ffmpeg/libavcodec/arm \
+       third_party/ffmpeg/libavcodec/avr32 \
+       third_party/ffmpeg/libavcodec/bfin \
+       third_party/ffmpeg/libavcodec/mips_ \
+       third_party/ffmpeg/libavcodec/ppc \
+       third_party/ffmpeg/libavcodec/sh4 \
+       third_party/ffmpeg/libavcodec/sparc \
+       third_party/ffmpeg/libavresample/arm \
+       third_party/ffmpeg/libavutil/avr32 \
+       third_party/ffmpeg/libavutil/bfin \
+       third_party/ffmpeg/libavutil/mips_ \
+       third_party/ffmpeg/libavutil/ppc \
+       third_party/ffmpeg/libavutil/sh4 \
+       third_party/ffmpeg/libswresample/arm \
+       third_party/ffmpeg/libswscale/bfin \
+       third_party/ffmpeg/libswscale/ppc \
+       third_party/ffmpeg/libswscale/sparc \
        third_party/ffmpeg/tools \
        third_party/fuzzymatch \
        third_party/gles2_book \
@@ -331,6 +355,7 @@ remove_nonessential_dirs() {
        third_party/nspr \
        third_party/nss \
        third_party/ocmock \
+       third_party/openssl \
        third_party/openssl/config/android \
        third_party/ots/tools \
        third_party/pthread \
@@ -392,7 +417,7 @@ remove_nonessential_dirs() {
        ui/gfx/mac \
        ui/resources/default_100_percent/cros_ \
        ui/resources/default_200_percent/cros_ \
-       ui/views/examples \
+       ui/views/examples_ \
        ui/views/win \
        v8/samples \
        webkit/chromeos \
@@ -408,16 +433,20 @@ remove_nonessential_dirs() {
                base/mac \
                base/win \
                build/android \
-               chrome/browser/chromeos \
+               chrome/browser/chromeos_ \
+               v8/src/d8* \
                chrome/browser/component/web_contents_delegate_android \
                chrome/tools \
-               chromeos \
+               chromeos_ \
+               cloud_print/service/win \
                content/browser/renderer_host/java \
                content/common/mac \
                content/renderer/java \
                gpu/tools \
+               media/base/android_ \
                native_client/src/include/win \
                native_client/src/trusted/service_runtime/win \
+               net/tools \
                remoting/tools \
                sandbox/win \
                third_party/WebKit/Source/WebKit/chromium/public/mac \
@@ -431,61 +460,77 @@ remove_nonessential_dirs() {
                third_party/webrtc/modules/video_coding/codecs/tools \
                third_party/webrtc/tools \
                ui/base/win \
-               v8/tools \
+               v8/tools_ \
                webkit/tools \
        ) '!' -type d '(' \
                '!' -name '*.grd' \
                '!' -name '*.gyp*' \
+               '!' -name '*.isolate' \
                '!' -path 'base/mac/bundle_locations.h' \
                '!' -path 'base/mac/crash_logging.h' \
                '!' -path 'base/win/windows_version.h' \
-               '!' -path 'build/android/cpufeatures.gypi' \
+               '!' -path 'chrome/browser/chromeos/attestation/platform_verification_flow.h' \
                '!' -path 'chrome/browser/chromeos/contacts/contact.proto' \
+               '!' -path 'chrome/browser/chromeos/extensions/*.h' \
                '!' -path 'chrome/browser/chromeos/extensions/echo_private_api.h' \
-               '!' -path 'chrome/browser/chromeos/extensions/file_browser_handler_api.h' \
+               '!' -path 'chrome/browser/chromeos/extensions/file_manager/file_browser_handler_api.h' \
+               '!' -path 'chrome/browser/chromeos/extensions/file_manager/file_browser_private_api_functions.h' \
                '!' -path 'chrome/browser/chromeos/extensions/info_private_api.h' \
                '!' -path 'chrome/browser/chromeos/extensions/media_player_api.h' \
                '!' -path 'chrome/browser/chromeos/extensions/networking_private_api.h' \
+               '!' -path 'chrome/browser/chromeos/extensions/wallpaper_api.h' \
                '!' -path 'chrome/browser/chromeos/extensions/wallpaper_private_api.h' \
                '!' -path 'chrome/browser/chromeos/settings/cros_settings.h' \
                '!' -path 'chrome/browser/chromeos/settings/cros_settings_names.h' \
                '!' -path 'chrome/browser/chromeos/settings/cros_settings_provider.h' \
                '!' -path 'chrome/browser/chromeos/settings/device_settings_service.h' \
+               '!' -path 'chrome/browser/chromeos/system_logs/*.h' \
                '!' -path 'chrome/tools/build/generate_policy_source.py' \
-               '!' -path 'chrome/tools/build/linux/sed.sh' \
+               '!' -path 'chrome/tools/build/linux/sed.py' \
                '!' -path 'chrome/tools/build/make_version_cc.py' \
                '!' -path 'chrome/tools/build/repack_locales.py' \
                '!' -path 'chrome/tools/build/version.py' \
+               '!' -path 'chromeos/chromeos_constants.h' \
                '!' -path 'chromeos/chromeos_export.h' \
                '!' -path 'chromeos/chromeos_switches.h' \
                '!' -path 'chromeos/dbus/dbus_client_implementation_type.h' \
+               '!' -path 'chromeos/dbus/dbus_method_call_status.h' \
                '!' -path 'chromeos/dbus/session_manager_client.h' \
+               '!' -path 'chromeos/network/network_state_handler_observer.h' \
                '!' -path 'chromeos/network/onc/onc_constants.h' \
                '!' -path 'content/browser/renderer_host/java/java_bridge_dispatcher_host_manager.h' \
                '!' -path 'content/common/mac/attributed_string_coder.h' \
                '!' -path 'content/common/mac/font_descriptor.h' \
                '!' -path 'content/renderer/java/java_bridge_dispatcher.h' \
+               '!' -path 'media/base/android/demuxer_android.h' \
                '!' -path 'native_client/src/include/win/mman.h' \
                '!' -path 'native_client/src/trusted/service_runtime/win/debug_exception_handler.h' \
                '!' -path 'native_client/src/trusted/service_runtime/win/exception_patch/ntdll_patch.h' \
+               '!' -path 'net/tools/dafsa/*' \
+               '!' -path 'net/tools/tld_cleanup/*' \
+               '!' -path 'remoting/tools/build/*' \
                '!' -path 'remoting/tools/verify_resources.py' \
                '!' -path 'sandbox/win/src/sandbox_types.h' \
                '!' -path 'third_party/WebKit/Source/WebKit/chromium/public/mac/WebSubstringUtil.h' \
                '!' -path 'third_party/cld/encodings/compact_lang_det/win/cld_*.cc' \
                '!' -path 'third_party/cld/encodings/compact_lang_det/win/cld_*.h' \
                '!' -path 'third_party/cros_system_api/dbus/*.proto' \
+               '!' -path 'third_party/cros_system_api/dbus/*/dbus-constants.h' \
                '!' -path 'third_party/cros_system_api/dbus/service_constants.h' \
                '!' -path 'third_party/sfntly/cpp/src/sample/chromium/*' \
                '!' -path 'third_party/tcmalloc/chromium/*' \
                '!' -path 'third_party/v8-i18n/tools/js2c.py' \
+               '!' -path 'third_party/webrtc/tools/tools_unittests.isolate' \
                '!' -path 'ui/base/win/dpi.h' \
+               '!' -path 'ui/webui/resources/js/webui_resource_test.js' \
                '!' -path 'v8/tools/js2c.py' \
                '!' -path 'v8/tools/jsmin.py' \
                '!' -path 'webkit/tools/test_shell/*.h' \
                ')' \
        -print -delete
 }
-
+# }}}
+# {{{ almost_strip_dirs
 # There are directories we want to strip, but that are unnecessarily required by the build-system
 # So we drop everything but the gyp/gypi files
 almost_strip_dirs() {
@@ -493,7 +538,7 @@ almost_strip_dirs() {
        for dir in \
                breakpad_ \
                build/ios \
-               courgette \
+               courgette_ \
                third_party/cros_dbus_cplusplus \
                ; do
                find $dir -depth -mindepth 1 '!' '(' -name '*.gyp' -o -name '*.gypi' ')' -print -delete || :
@@ -502,6 +547,7 @@ almost_strip_dirs() {
        find tools -type f \
                '!' -iname '*.gyp*' \
                '!' -path 'tools/build/*' \
+               '!' -path 'tools/battor_agent/*' \
                '!' -path 'tools/clang/scripts/plugin_flags.sh' \
                '!' -path 'tools/compile_test/compile_test.py' \
                '!' -path 'tools/generate_library_loader/*' \
@@ -510,21 +556,26 @@ almost_strip_dirs() {
                '!' -path 'tools/grit/*' \
                '!' -path 'tools/gritsettings/*' \
                '!' -path 'tools/gyp/*' \
-               '!' -path 'tools/json_comment_eater.py' \
+               '!' -path 'tools/idl_parser/*' \
+               '!' -path 'tools/json_comment_eater/json_comment_eater.py' \
                '!' -path 'tools/json_schema_compiler/*' \
                '!' -path 'tools/json_to_struct/*' \
                '!' -path 'tools/licenses.py' \
                '!' -path 'tools/protoc_wrapper/*' \
                '!' -path 'tools/usb_ids/*' \
                '!' -path 'tools/uuidgen.py' \
+               '!' -path 'tools/variations/*' \
                '!' -path 'tools/zip2msi.py' \
                -print -delete
 }
-
-# clean third party
+# }}}
+# {{{ clean third party
 # list based from archlinux PKGBUILD
 # https://aur.archlinux.org/packages/ch/chromium-dev/PKGBUILD
 clean_third_party() {
+
+       # NOTE: don't forget to sync remove_bundled_libraries() {
+
        local dir
        for dir in \
                third_party/ashmem \
@@ -534,11 +585,9 @@ clean_third_party() {
                third_party/icon_family \
                third_party/isimpledom \
                third_party/jsr-305 \
-               third_party/libexif \
                third_party/mach_override \
                third_party/npapi/npspy \
                third_party/re2/benchlog \
-               third_party/snappy \
                third_party/sqlite/*.patch \
                third_party/sqlite/src/*.patch \
                third_party/sudden_motion_sensor \
@@ -548,70 +597,121 @@ clean_third_party() {
 
        find third_party -type f \
                '!' -iname '*.gyp*' \
-               \! -path 'third_party/WebKit/*' \
-               \! -path 'third_party/adobe/flash/*' \
-               \! -path 'third_party/angle/include/EGL/*' \
-               \! -path 'third_party/angle/include/GLSLANG/*' \
-               \! -path 'third_party/angle/src/common/*' \
-               \! -path 'third_party/angle/src/compiler/*' \
-               \! -path 'third_party/angle/src/third_party/compiler/*' \
-               \! -path 'third_party/cacheinvalidation/*' \
-               \! -path 'third_party/cld/*' \
-               \! -path 'third_party/cros_system_api/*' \
-               \! -path 'third_party/flot/*.js' \
-               \! -path 'third_party/hunspell/*' \
-               \! -path 'third_party/hyphen/*' \
-               \! -path 'third_party/iccjpeg/*' \
-               \! -path 'third_party/jstemplate/*' \
-               \! -path 'third_party/khronos/*' \
-               \! -path 'third_party/leveldatabase/*' \
-               \! -path 'third_party/libXNVCtrl/*' \
-               \! -path 'third_party/libjingle/*' \
-               \! -path 'third_party/libphonenumber/*' \
-               \! -path 'third_party/libva/*' \
-               \! -path 'third_party/libvpx/*' \
-               \! -path 'third_party/libxml/chromium/*' \
-               \! -path 'third_party/libyuv/*' \
-               \! -path 'third_party/lss/*.h' \
-               \! -path 'third_party/mesa/MesaLib/include/GL/gl.h' \
-               \! -path 'third_party/mesa/MesaLib/include/GL/glext.h' \
-               \! -path 'third_party/mesa/MesaLib/include/GL/glx.h' \
-               \! -path 'third_party/mesa/MesaLib/include/GL/glxext.h' \
-               \! -path 'third_party/mesa/MesaLib/include/GL/osmesa.h' \
-               \! -path 'third_party/modp_b64/*' \
-               \! -path 'third_party/mt19937ar/*' \
-               \! -path 'third_party/npapi/*' \
-               \! -path 'third_party/ots/*' \
-               \! -path 'third_party/protobuf/*' \
-               \! -path 'third_party/qcms/*' \
-               \! -path 'third_party/re2/*' \
-               \! -path 'third_party/sfntly/*' \
-               \! -path 'third_party/skia/*' \
-               \! -path 'third_party/smhasher/*' \
-               \! -path 'third_party/sqlite/amalgamation/*' \
-               \! -path 'third_party/sqlite/sqlite3.h' \
-               \! -path 'third_party/sqlite/src/ext/*' \
-               \! -path 'third_party/tcmalloc/*' \
-               \! -path 'third_party/trace-viewer/*' \
-               \! -path 'third_party/undoview/*' \
-               \! -path 'third_party/v8-i18n/*' \
-               \! -path 'third_party/v8/*' \
-               \! -path 'third_party/webrtc/*' \
-               \! -path 'third_party/widevine/*' \
-               \! -path 'third_party/x86inc/*' \
+               '!' -iname '*.isolate' \
+               '!' -path 'third_party/WebKit/*' \
+               '!' -path 'third_party/adobe/flash/*' \
+               '!' -path 'third_party/analytics/*' \
+               '!' -path 'third_party/angle/enumerate_files.py' \
+               '!' -path 'third_party/angle/include/*.h' \
+               '!' -path 'third_party/angle/include/EGL/*' \
+               '!' -path 'third_party/angle/include/GLSLANG/*' \
+               '!' -path 'third_party/angle/src/*' \
+               '!' -path 'third_party/angle/src/common/*' \
+               '!' -path 'third_party/angle/src/compiler/*' \
+               '!' -path 'third_party/angle/src/enumerate_files.py' \
+               '!' -path 'third_party/angle/src/third_party/compiler/*' \
+               '!' -path 'third_party/angle/src/third_party/murmurhash/*' \
+               '!' -path 'third_party/angle/src/third_party/trace_event/*' \
+               '!' -path 'third_party/boringssl/*' \
+               '!' -path 'third_party/brotli/*' \
+               '!' -path 'third_party/cacheinvalidation/*' \
+               '!' -path 'third_party/catapult/*' \
+               '!' -path 'third_party/cld/*' \
+               '!' -path 'third_party/cld_2/*' \
+               '!' -path 'third_party/cros_system_api/*' \
+               '!' -path 'third_party/cython/python_flags.py' \
+               '!' -path 'third_party/devscripts/*' \
+               '!' -path 'third_party/dom_distiller_js/*' \
+               '!' -path 'third_party/ffmpeg/*' \
+               '!' -path 'third_party/fips181/*' \
+               '!' -path 'third_party/flot/*.js' \
+               '!' -path 'third_party/google_input_tools/*' \
+               '!' -path 'third_party/hunspell/*' \
+               '!' -path 'third_party/hunspell_new/*' \
+               '!' -path 'third_party/hyphen/*' \
+               '!' -path 'third_party/iccjpeg/*' \
+               '!' -path 'third_party/icu/*' \
+               '!' -path 'third_party/icu/icu.isolate' \
+               '!' -path 'third_party/jinja2/*' \
+               '!' -path 'third_party/jstemplate/*' \
+               '!' -path 'third_party/khronos/*' \
+               '!' -path 'third_party/leveldatabase/*' \
+               '!' -path 'third_party/libXNVCtrl/*' \
+               '!' -path 'third_party/libaddressinput/*' \
+               '!' -path 'third_party/libjingle/*' \
+               '!' -path 'third_party/libphonenumber/*' \
+               '!' -path 'third_party/libsecret/*' \
+               '!' -path 'third_party/libsrtp/*' \
+               '!' -path 'third_party/libusb/*' \
+               '!' -path 'third_party/libva/*' \
+               '!' -path 'third_party/libvpx_new/*' \
+               '!' -path 'third_party/libwebm/*' \
+               '!' -path 'third_party/libwebp/*' \
+               '!' -path 'third_party/libxml/chromium/*' \
+               '!' -path 'third_party/libyuv/*' \
+               '!' -path 'third_party/lss/*.h' \
+               '!' -path 'third_party/lzma_sdk/*' \
+               '!' -path 'third_party/markupsafe/*' \
+               '!' -path 'third_party/mesa/src/include/GL/gl.h' \
+               '!' -path 'third_party/mesa/src/include/GL/glext.h' \
+               '!' -path 'third_party/mesa/src/include/GL/glx.h' \
+               '!' -path 'third_party/mesa/src/include/GL/glxext.h' \
+               '!' -path 'third_party/mesa/src/include/GL/osmesa.h' \
+               '!' -path 'third_party/modp_b64/*' \
+               '!' -path 'third_party/mojo/*' \
+               '!' -path 'third_party/mt19937ar/*' \
+               '!' -path 'third_party/npapi/*' \
+               '!' -path 'third_party/openh264/*' \
+               '!' -path 'third_party/openmax_dl/*' \
+               '!' -path 'third_party/ots/*' \
+               '!' -path 'third_party/pdfium/*' \
+               '!' -path 'third_party/ply/*' \
+               '!' -path 'third_party/polymer/*' \
+               '!' -path 'third_party/polymer_legacy/*' \
+               '!' -path 'third_party/protobuf/*' \
+               '!' -path 'third_party/qcms/*' \
+               '!' -path 'third_party/re2/*' \
+               '!' -path 'third_party/readability/*' \
+               '!' -path 'third_party/sfntly/*' \
+               '!' -path 'third_party/skia/*' \
+               '!' -path 'third_party/smhasher/*' \
+               '!' -path 'third_party/snappy/*' \
+               '!' -path 'third_party/sqlite/amalgamation/*' \
+               '!' -path 'third_party/sqlite/sqlite3.h' \
+               '!' -path 'third_party/sqlite/src/ext/*' \
+               '!' -path 'third_party/tcmalloc/*' \
+               '!' -path 'third_party/usrsctp/*' \
+               '!' -path 'third_party/v8-i18n/*' \
+               '!' -path 'third_party/v8/*' \
+               '!' -path 'third_party/web-animations-js/*' \
+               '!' -path 'third_party/webrtc/*' \
+               '!' -path 'third_party/webrtc_overrides/*' \
+               '!' -path 'third_party/widevine/*' \
+               '!' -path 'third_party/woff2/*' \
+               '!' -path 'third_party/x86inc/*' \
+               '!' -path 'third_party/zlib/google/*' \
+               '!' -path 'third_party/zlib/zlib.h' \
+               \
+               '!' -path 'third_party/jinja2/*' \
+               '!' -path 'third_party/libvpx/*' \
+               '!' -path 'third_party/markupsafe/*' \
+               '!' -path 'third_party/opus/*' \
+               '!' -path 'third_party/libudev/*' \
                -print -delete
 
        rm -vf third_party/expat/files/lib/expat.h
 }
-
+# }}}
+# {{{ remove_bin_only
 # parts based on ubuntu debian/rules
 # http://bazaar.launchpad.net/~chromium-team/chromium-browser/chromium-browser.head/view/head:/debian/rules
 remove_bin_only() {
+       # preserve: ui/keyboard/resources/roboto_bold.ttf
        find -type f \( \
                -iname \*.exe -o \
                -iname \*.nexe -o \
                -iname \*.fon -o \
-               -iname \*.ttf  -o \
+               -iname \*.ttf_  -o \
                -iname \*.dll -o \
                -iname \*.pdb -o \
                -name \*.o -o \
@@ -619,11 +719,17 @@ remove_bin_only() {
                -name \*.dylib \
        \) -exec rm -fv {} \;
 }
-
+# }}}
+# {{{ strip_system_dirs
 # removes dir, if the bcond is not turned off
 strip_system_dirs() {
-       local dir lib bcond
+       local dir lib bcond args
+       # prevent "*" from being expanded in $args
+       set -f
        for dir in "$@"; do
+               args=${dir#* }
+               test "$args" = "$dir" && args=
+               dir=${dir%% *}
                lib=${dir##*/}
                bcond=$(eval echo \$$lib)
                [ "${bcond:-1}" = 0 ] && continue
@@ -631,29 +737,31 @@ strip_system_dirs() {
                # skip already removed dirs
                test -d $dir || continue
 
-               find $dir -depth -mindepth 1 \! \( -name '*.gyp' -o -name '*.gypi' -o -path $dir/$lib.h \) -print -delete
+               find $dir -depth -mindepth 1 '!' '(' -name '*.gyp' -o -name '*.gypi' -o -name '*.isolate' -o -path $dir/$lib.h $args ')' -print -delete || :
        done
+       set +f
 }
-
+# }}}
+# {{{ remove_tests
 # remove test data and files
 # some scanned with find -name tests -o -name test -o -name test_data -o name testdata
 # and find -iname *test*
 remove_tests() {
        local dir
 
-       # full remove
+       echo '> full remove'
        for dir in \
        ash/test \
-       base/test \
+       base/test_ \
        breakpad/src/client/windows/tests \
        breakpad/src/common/linux/tests \
        breakpad/src/common/tests \
-       cc/test \
+       cc/test_ \
        chrome/browser/chromeos/bluetooth/test \
        chrome/browser/component_updater/test \
        chrome/browser/extensions/api/test_ \
        chrome/browser/printing/cloud_print/test \
-       chrome/browser/resources/gaia_auth/test \
+       chrome/browser/resources/gaia_auth/test_ \
        chrome/browser/resources/tracing/tests \
        chrome/browser/sync/test \
        chrome/browser/ui/cocoa/test \
@@ -673,7 +781,7 @@ remove_tests() {
        chrome_frame/tools/test \
        content/browser/worker_host/test \
        content/common/gpu/testdata \
-       content/public/test \
+       content/public/test_ \
        content/test \
        courgette/testdata \
        device/bluetooth/test \
@@ -699,7 +807,7 @@ remove_tests() {
        net/test \
        o3d/tests \
        ppapi/native_client/tests \
-       ppapi/tests \
+       ppapi/tests_ \
        printing/test \
        rlz/test \
        sandbox/linux/seccomp-legacy/tests \
@@ -745,12 +853,12 @@ remove_tests() {
        third_party/WebKit/Tools/TestWebKitAPI/Tests/mac \
        third_party/WebKit/Tools/TestWebKitAPI/mac \
        third_party/WebKit/Tools/TestWebKitAPI/win \
-       third_party/angle/tests \
+       third_party/angle_dx11/tests \
        third_party/cacheinvalidation/files/src/google/cacheinvalidation/test \
        third_party/cacheinvalidation/src/google/cacheinvalidation/test \
        third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/testing \
        third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/testing/android \
-       third_party/ffmpeg/tests \
+       third_party/ffmpeg/tests_ \
        third_party/harfbuzz/tests \
        third_party/hunspell/tests \
        third_party/hyphen/tests \
@@ -767,7 +875,7 @@ remove_tests() {
        third_party/openssl/openssl/test \
        third_party/ots/test \
        third_party/protobuf/src/google/protobuf/testdata \
-       third_party/protobuf/src/google/protobuf/testing \
+       third_party/protobuf/src/google/protobuf/testing_ \
        third_party/re2/re2/testing \
        third_party/safe_browsing/testing \
        third_party/sfntly/cpp/src/test \
@@ -790,7 +898,6 @@ remove_tests() {
        third_party/webrtc/system_wrappers/test \
        third_party/webrtc/test/manual \
        third_party/webrtc/test/testsupport/mac \
-       third_party/webrtc/video_engine/test/android \
        third_party/webrtc/video_engine/test/auto_test/android \
        third_party/webrtc/voice_engine/test/android \
        third_party/xdg-utils/tests \
@@ -813,6 +920,7 @@ remove_tests() {
        third_party/yasm/source/patched-yasm/modules/preprocs/nasm/tests \
        third_party/yasm/source/patched-yasm/modules/preprocs/raw/tests \
        third_party/yasm/source/patched-yasm/tools/python-yasm/tests \
+       third_party/zlib/google/test \
        tools/clang/plugins/tests \
        tools/grit/grit/testdata \
        tools/gyp/test \
@@ -837,11 +945,13 @@ remove_tests() {
                rm -vfr "$dir"
        done
 
-       # partial remove (keep .gyp)
+       echo '> partial remove (keep .gyp)'
        for dir in \
                chrome/browser/nacl_host/test \
-               chrome/test/data \
-               testing \
+               chrome/test/data_ \
+               testing/gtest_ \
+               testing/gtest_ios \
+               testing/gmock_ \
                third_party/webrtc/modules/audio_coding/codecs/cng/test \
                third_party/webrtc/modules/audio_coding/codecs/g711/test \
                third_party/webrtc/modules/audio_coding/codecs/g722/test \
@@ -861,7 +971,7 @@ remove_tests() {
                third_party/webrtc/modules/video_coding/main/test \
                third_party/webrtc/modules/video_processing/main/test \
                third_party/webrtc/modules/video_render/main/test \
-               third_party/webrtc/video_engine/test \
+               third_party/webrtc/video_engine/test_ \
                third_party/webrtc/voice_engine/test \
                tools/json_schema_compiler/test \
                ; do
@@ -869,56 +979,226 @@ remove_tests() {
        done
 
        # link headers from system dir. too many files to patch, we don't even build tests
-       install -d testing/gtest/include
-       ln -s /usr/include/gtest testing/gtest/include/gtest
+#      install -d testing/gtest/include
+#      ln -s /usr/include/gtest testing/gtest/include/gtest
+
+       # fast exit. as this requires fine-tuning
+       return
 
-       # delete unittest files
+       echo '> delete unittest files'
        find . '(' \
-               -name '*_unittest*.*' \
-               -o -name '*_unittest.*' \
-               -o -name '*_unittest' \
-               -o -name 'test_*.*' \
-               -o -name '*_test.*' \
-       ')' '!' -name '*.gyp*' \
-               '!' -name '*.isolate' \
+               -name '*_unittest*.*' -o \
+               -name '*_unittest.*' -o \
+               -name '*_unittest' -o \
+               -name 'test_*.*' -o \
+               -name '*_test.*' -o \
+               -path './testing/' \
+       ')' '!' -type d '(' \
                '!' -name '*.grd' \
+               '!' -name '*.gyp*' \
+               '!' -name '*.isolate' \
+               '!' -path './base/test/*' \
+               '!' -path './base/test/launcher/*' \
+               '!' -path './base/test/launcher/test_launcher.*' \
+               '!' -path './base/test/launcher/test_result.*' \
+               '!' -path './cc/debug/*' \
+               '!' -path './cc/debug/test_context_provider.h' \
+               '!' -path './cc/debug/test_web_graphics_context_3d.h' \
                '!' -path './chrome/browser/diagnostics/diagnostics_test.*' \
                '!' -path './chrome/browser/extensions/api/declarative/test_rules_registry.*' \
                '!' -path './chrome/browser/extensions/api/test/test_api.*' \
+               '!' -path './chrome/browser/resources/gaia_auth/manifest_test.json' \
+               '!' -path './extensions/renderer/resources/test_custom_bindings.js' \
+               '!' -path './sync/internal_api/attachments/attachment_service_proxy_for_test.cc' \
+               '!' -path './net/base/registry_controlled_domains/effective_tld_names_unittest1.gperf' \
                '!' -path './chrome/browser/resources/net_internals/*' \
+               '!' -path './chrome/browser/storage_monitor/test_media_transfer_protocol_manager_linux.*' \
                '!' -path './chrome/browser/ui/webui/test_chrome_web_ui_controller_factory*' \
                '!' -path './chrome/common/net/test_server_locations.*' \
                '!' -path './chrome/renderer/resources/extensions/test_custom_bindings.js' \
                '!' -path './chrome/test/base/test_switches.*' \
                '!' -path './chrome/test/perf/browser_perf_test.*' \
                '!' -path './chrome/test/perf/perf_test.*' \
+               '!' -path './content/public/test/test_utils.h' \
+               '!' -path './extensions/browser/api/test/test_api.*' \
+               '!' -path './extensions/renderer/test_features_native_handler.*' \
+               '!' -path './media/cast/rtcp/test_rtcp_packet_builder.*' \
                '!' -path './native_client/src/trusted/fault_injection/test_injection.*' \
                '!' -path './native_client/src/trusted/service_runtime/env_cleanser_test.h' \
                '!' -path './net/base/test_completion_callback.*' \
                '!' -path './net/base/test_data_stream.*' \
-               '!' -path './net/base/test_root_certs*' \
+               '!' -path './net/cert/test_root_certs*' \
                '!' -path './remoting/base/resources_unittest.*' \
+               '!' -path './sync/api/attachments/attachment_service_proxy_for_test.*' \
+               '!' -path './testing/*' \
+               '!' -path './testing/perf/perf_test.*' \
                '!' -path './third_party/skia/src/gpu/gr_unittests.*' \
+               '!' -path './third_party/trace-viewer/src/base/unittest/test_error.js' \
+               '!' -path './third_party/trace-viewer/src/tracing/test_utils.js' \
+               '!' -path './third_party/trace-viewer/third_party/tvcm/src/tvcm/unittest/*.js' \
+               '!' -path './third_party/trace-viewer/third_party/tvcm/src/tvcm/unittest/test_case.js' \
+               '!' -path './third_party/trace-viewer/third_party/tvcm/src/tvcm/unittest/test_error.js' \
+               '!' -path './third_party/trace-viewer/third_party/tvcm/src/tvcm/unittest/test_runner.js' \
+               '!' -path './third_party/trace-viewer/third_party/tvcm/third_party/rcssmin/*' \
+               '!' -path './third_party/trace-viewer/third_party/tvcm/third_party/rjsmin/*' \
+               '!' -path './third_party/trace-viewer/trace_viewer/tracing/test_utils.js' \
+               '!' -path './mojo/embedder/test_embedder.*' \
+               '!' -path './ui/base/hit_test.*' \
+               '!' -path './tools/compile_test/compile_test.py' \
                '!' -path './tools/compile_test/compile_test.py' \
                '!' -path './ui/compositor/test_web_graphics_context_3d.*' \
-               '!' -path './webkit/fileapi/test_mount_point_provider.*' \
+               '!' -path './ui/webui/resources/js/webui_resource_test.js' \
+               '!' -path './webkit/browser/fileapi/*.cc' \
+               '!' -path './webkit/browser/fileapi/*.h' \
+               '!' -path './webkit/common/gpu/test_context_provider_factory.*' \
                '!' -path './webkit/gpu/test_context_provider_factory.*' \
                '!' -path './webkit/support/test_webkit_platform_support.h' \
                '!' -path './webkit/tools/test_shell/*.h' \
-       -print -delete || :
+       ')' \
+               -print -delete || :
 }
+# }}}
 
-remove_nonessential_dirs > REMOVED-nonessential_dirs.txt
-almost_strip_dirs > REMOVED-stripped.txt
-remove_bin_only > REMOVED-bin_only.txt
-remove_tests > REMOVED-tests.txt
+# {{{ remove_bundled_libraries
+# Remove most bundled libraries. Some are still needed.
+# Sync this with gentoo/chromium-*.ebuild
+# NOTE: argument list to script specifies paths to preserve
+remove_bundled_libraries() {
+       # ninja: error: '../../third_party/jinja2/__init__.py', needed by 'gen/blink/InternalSettingsGenerated.idl', missing and no known rule to make it
+       # ninja: error: '../../third_party/markupsafe/__init__.py', needed by 'gen/blink/InternalSettingsGenerated.idl', missing and no known rule to make it
+
+       # NOTE: don't forget to sync clean_third_party()
+
+       build/linux/unbundle/remove_bundled_libraries.py \
+               third_party/adobe/flash/flapper_version.h \
+               third_party/jinja2 \
+               third_party/markupsafe/ \
+               third_party/ply/ \
+               third_party/catapult/third_party/beautifulsoup4 \
+               third_party/ffmpeg \
+               'base/third_party/dmg_fp' \
+               'base/third_party/dynamic_annotations' \
+               'base/third_party/icu' \
+               'base/third_party/nspr' \
+               'base/third_party/superfasthash' \
+               'base/third_party/symbolize' \
+               'base/third_party/valgrind' \
+               'base/third_party/xdg_mime' \
+               'base/third_party/xdg_user_dirs' \
+               'breakpad/src/third_party/curl' \
+               'chrome/third_party/mozilla_security_manager' \
+               'courgette/third_party' \
+               'crypto/third_party/nss' \
+               'net/third_party/mozilla_security_manager' \
+               'net/third_party/nss' \
+               'third_party/WebKit' \
+               'third_party/analytics' \
+               'third_party/angle' \
+               'third_party/angle/src/third_party/compiler' \
+               'third_party/angle/src/third_party/murmurhash' \
+               'third_party/angle/src/third_party/trace_event' \
+               'third_party/boringssl' \
+               'third_party/brotli' \
+               'third_party/cacheinvalidation' \
+               'third_party/catapult' \
+               'third_party/catapult/third_party/py_vulcanize' \
+               'third_party/catapult/third_party/py_vulcanize/third_party/rcssmin' \
+               'third_party/catapult/third_party/py_vulcanize/third_party/rjsmin' \
+               'third_party/catapult/tracing/third_party/components/polymer' \
+               'third_party/catapult/tracing/third_party/d3' \
+               'third_party/catapult/tracing/third_party/gl-matrix' \
+               'third_party/catapult/tracing/third_party/jszip' \
+               'third_party/cld_2' \
+               'third_party/cros_system_api' \
+               'third_party/cython/python_flags.py' \
+               'third_party/devscripts' \
+               'third_party/dom_distiller_js' \
+               'third_party/dom_distiller_js/dist/proto_gen/third_party/dom_distiller_js' \
+               'third_party/fips181' \
+               'third_party/flot' \
+               'third_party/google_input_tools' \
+               'third_party/google_input_tools/third_party/closure_library' \
+               'third_party/google_input_tools/third_party/closure_library/third_party/closure' \
+               'third_party/hunspell' \
+               'third_party/iccjpeg' \
+               'third_party/icu' \
+               'third_party/jstemplate' \
+               'third_party/khronos' \
+               'third_party/leveldatabase' \
+               'third_party/libXNVCtrl' \
+               'third_party/libaddressinput' \
+               'third_party/libjingle' \
+               'third_party/libphonenumber' \
+               'third_party/libsecret' \
+               'third_party/libsrtp' \
+               'third_party/libudev' \
+               'third_party/libusb' \
+               'third_party/libvpx_new' \
+               'third_party/libvpx_new/source/libvpx/third_party/x86inc' \
+               'third_party/libxml/chromium' \
+               'third_party/libwebm' \
+               'third_party/libyuv' \
+               'third_party/lss' \
+               'third_party/lzma_sdk' \
+               'third_party/mesa' \
+               'third_party/modp_b64' \
+               'third_party/mt19937ar' \
+               'third_party/npapi' \
+               'third_party/openh264' \
+               'third_party/openmax_dl' \
+               'third_party/opus' \
+               'third_party/ots' \
+               'third_party/pdfium' \
+               'third_party/pdfium/third_party/agg23' \
+               'third_party/pdfium/third_party/base' \
+               'third_party/pdfium/third_party/bigint' \
+               'third_party/pdfium/third_party/freetype' \
+               'third_party/pdfium/third_party/lcms2-2.6' \
+               'third_party/pdfium/third_party/libjpeg' \
+               'third_party/pdfium/third_party/libopenjpeg20' \
+               'third_party/pdfium/third_party/zlib_v128' \
+               'third_party/polymer' \
+               'third_party/protobuf' \
+               'third_party/qcms' \
+               'third_party/re2' \
+               'third_party/sfntly' \
+               'third_party/skia' \
+               'third_party/smhasher' \
+               'third_party/sqlite' \
+               'third_party/tcmalloc' \
+               'third_party/usrsctp' \
+               'third_party/web-animations-js' \
+               'third_party/webdriver' \
+               'third_party/webrtc' \
+               'third_party/widevine' \
+               'third_party/woff2' \
+               'third_party/x86inc' \
+               'third_party/zlib/google' \
+               'url/third_party/mozilla' \
+               'v8/src/third_party/fdlibm' \
+               'v8/src/third_party/valgrind' \
+               --do-print \
+               --do-remove
+}
+# }}}
+
+# clean extra files that are cleaned in tarball provided by google
+clean_src_extra() {
+       rm -rfv \
+               .landmines \
+               chrome/browser/resources/pdf/html_office \
+               third_party/WebKit/ManualTests \
+               third_party/WebKit/PerformanceTests
+}
+
+remove_bundled_libraries > REMOVED-bundled_libraries.txt
 
 strip_system_dirs \
        native_client/src/third_party_mod/jsoncpp \
        third_party/bzip2 \
-       third_party/ffmpeg \
+       third_party/ffmpeg_ \
        third_party/flac \
-       third_party/icu \
+       third_party/icu_ \
        third_party/jsoncpp \
        third_party/libXNVCtrl \
        third_party/libevent \
@@ -926,21 +1206,26 @@ strip_system_dirs \
        third_party/libjpeg \
        third_party/libmtp \
        third_party/libpng \
-       third_party/libsrtp \
-       third_party/libusb \
-       third_party/libvpx \
+       third_party/libsrtp_ \
+       third_party/libusb_ \
+       third_party/libvpx_ \
        third_party/libwebp \
        third_party/libxslt \
        third_party/mesa \
-       third_party/opus \
+       third_party/opus_ \
        third_party/protobuf \
        third_party/re2 \
+       third_party/snappy \
        third_party/speex \
        third_party/sqlite \
        third_party/yasm \
-       third_party/zlib \
+       "third_party/zlib -o -path third_party/zlib/google/*" \
        v8 \
 > REMOVED-system_dirs.txt
+remove_nonessential_dirs > REMOVED-nonessential_dirs.txt
+almost_strip_dirs > REMOVED-stripped.txt
+remove_bin_only > REMOVED-bin_only.txt
+remove_tests > REMOVED-tests.txt
 
 if [ "${sqlite:-1}" = 1 ]; then
        # some code does not pass -DUSE_SYSTEM_SQLITE properly
@@ -949,6 +1234,8 @@ fi
 
 clean_third_party > REMOVED-third_party.txt
 
+clean_src_extra > REMOVED-extra.txt
+
 if [ "${v8:-1}" != "0" ]; then
        # The implementation files include v8 headers with full path,
        # like #include "v8/include/v8.h". Make sure the system headers
@@ -969,5 +1256,7 @@ fi
 
 # report what's in them
 for a in REMOVED-*.txt; do
-       cat $a
+       sed -e "s/^/$a: /" $a
 done
+
+# vim:fdm=marker
This page took 0.109635 seconds and 4 git commands to generate.