# "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
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 \
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/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 \
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 \
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 \
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/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/mips_ \
third_party/ffmpeg/libavutil/ppc \
third_party/ffmpeg/libavutil/sh4 \
third_party/ffmpeg/libswresample/arm \
third_party/nspr \
third_party/nss \
third_party/ocmock \
+ third_party/openssl \
third_party/openssl/config/android \
third_party/ots/tools \
third_party/pthread \
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 \
base/win \
build/android \
chrome/browser/chromeos_ \
+ v8/src/d8* \
chrome/browser/component/web_contents_delegate_android \
chrome/tools \
chromeos_ \
'!' -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' \
')' \
-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() {
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 || :
'!' -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 \
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 \
'!' -iname '*.gyp*' \
'!' -iname '*.isolate' \
'!' -path 'third_party/WebKit/*' \
- '!' -path 'third_party/libwebm/*' \
'!' -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/*' \
'!' -path 'third_party/brotli/*' \
'!' -path 'third_party/cacheinvalidation/*' \
'!' -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/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/libusb/*' \
'!' -path 'third_party/libva/*' \
'!' -path 'third_party/libvpx/*' \
+ '!' -path 'third_party/libwebm/*' \
'!' -path 'third_party/libwebp/*' \
'!' -path 'third_party/libxml/chromium/*' \
'!' -path 'third_party/libyuv/*' \
'!' -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/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/trace-viewer/*' \
'!' -path 'third_party/undoview/*' \
'!' -path 'third_party/usrsctp/*' \
+ '!' -path 'third_party/web-animations-js/*' \
'!' -path 'third_party/v8-i18n/*' \
'!' -path 'third_party/v8/*' \
'!' -path 'third_party/webrtc/*' \
'!' -path 'third_party/widevine/*' \
'!' -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 \
-name \*.dylib \
\) -exec rm -fv {} \;
}
-
+# }}}
+# {{{ strip_system_dirs
# removes dir, if the bcond is not turned off
strip_system_dirs() {
local dir lib bcond args
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*
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_ \
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 \
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 \
# install -d testing/gtest/include
# ln -s /usr/include/gtest testing/gtest/include/gtest
+ # fast exit. as this requires fine-tuning
+ return
+
echo '> delete unittest files'
find . '(' \
-name '*_unittest*.*' -o \
'!' -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/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_data_stream.*' \
'!' -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/src/tvcm/unittest/*.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.*' \
')' \
-print -delete || :
}
+# }}}
+# {{{ 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
# 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/fips181 \
'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/brotli' \
'third_party/cacheinvalidation' \
- 'third_party/cld' \
+ 'third_party/cld_2' \
'third_party/cros_system_api' \
+ 'third_party/cython/python_flags.py' \
+ 'third_party/dom_distiller_js' \
+ 'third_party/dom_distiller_js/dist/proto_gen/third_party/dom_distiller_js' \
'third_party/ffmpeg' \
+ '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/libsrtp' \
+ 'third_party/libudev' \
'third_party/libusb' \
- 'third_party/libwebm' \
+ 'third_party/libvpx' \
+ 'third_party/libvpx/source/libvpx/third_party/x86inc' \
'third_party/libxml/chromium' \
+ 'third_party/libXNVCtrl' \
'third_party/libyuv' \
'third_party/lss' \
'third_party/lzma_sdk' \
'third_party/mesa' \
'third_party/modp_b64' \
+ 'third_party/mojo' \
'third_party/mt19937ar' \
'third_party/npapi' \
- 'third_party/nss.isolate' \
+ 'third_party/openmax_dl' \
+ 'third_party/opus' \
'third_party/ots' \
+ 'third_party/pdfium' \
+ 'third_party/pdfium/third_party/base' \
+ 'third_party/pdfium/third_party/bigint' \
+ 'third_party/pdfium/third_party/freetype' \
'third_party/polymer' \
'third_party/protobuf' \
- 'third_party/pywebsocket' \
'third_party/qcms' \
'third_party/readability' \
'third_party/sfntly' \
'third_party/smhasher' \
'third_party/sqlite' \
'third_party/tcmalloc' \
- 'third_party/tlslite' \
'third_party/trace-viewer' \
+ 'third_party/trace-viewer/third_party/components/polymer' \
+ 'third_party/trace-viewer/third_party/d3' \
+ 'third_party/trace-viewer/third_party/gl-matrix' \
+ 'third_party/trace-viewer/third_party/jszip' \
+ 'third_party/trace-viewer/third_party/tvcm' \
+ 'third_party/trace-viewer/third_party/tvcm/third_party/beautifulsoup/polymer_soup.py' \
+ 'third_party/trace-viewer/third_party/tvcm/third_party/rcssmin' \
+ 'third_party/trace-viewer/third_party/tvcm/third_party/rjsmin' \
'third_party/undoview' \
'third_party/usrsctp' \
+ 'third_party/web-animations-js' \
'third_party/webdriver' \
'third_party/webrtc' \
'third_party/widevine' \
'third_party/x86inc' \
'third_party/zlib/google' \
'url/third_party/mozilla' \
+ 'v8/src/third_party/fdlibm' \
+ 'v8/src/third_party/kernel' \
'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
third_party/libpng \
third_party/libsrtp \
third_party/libusb_ \
- third_party/libvpx \
+ 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 \
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
for a in REMOVED-*.txt; do
cat $a
done
+
+# vim:fdm=marker