Translate

Archives

Building Old Chromium Releases Often Fails

It should be easy to build older Chromium (the browser upon which Google Chrome is based) releases but in fact it is not. More often than not, at least on Linux which is where I build Chromium, the build fails in multiple places. For example, try building the 13.0.782.218 release which is a fairly recent release. It falls over in several places, the first being in the source for the OTS tool.

This simply should not occur in any major software project and particularly projects such as Chromium. You should be able to build an exact copy of a particular release of a software product at any time in the future after the release.

Looking under the hood, Chromium is made up of a large number of repositories and a DEPS file is used to specify the particular versions of each repository to be used for each Chromium release. For example, here is the DEPS file for the 13.0.782.218 release of Chromium.

#
#  To use this DEPS file to re-create a Chromium release you
#  need the tools from http://dev.chromium.org installed.
#
#  This DEPS file corresponds to Chromium 13.0.782.218
#
#
#
deps_os = {
   'win': {
      'src/third_party/yasm/binaries':
         '/trunk/deps/third_party/yasm/binaries@74228',
      'src/rlz':
         'http://rlz.googlecode.com/svn/trunk@35',
      'src/chrome_frame/tools/test/reference_build/chrome':
         '/trunk/deps/reference_builds/chrome@70122',
      'src/third_party/cygwin':
         '/trunk/deps/third_party/cygwin@66844',
      'src/third_party/python_26':
         '/trunk/tools/third_party/python_26@70627',
      'src/third_party/swig/win':
         '/trunk/deps/third_party/swig/win@69281',
      'src/third_party/xulrunner-sdk':
         '/trunk/deps/third_party/xulrunner-sdk@71609',
      'src/third_party/ffmpeg/binaries/chromium/win/ia32':
         '/trunk/deps/third_party/ffmpeg/binaries/win@83815',
      'src/third_party/psyco_win32':
         '/trunk/deps/third_party/psyco_win32@79861',
      'src/third_party/lighttpd':
         '/trunk/deps/third_party/lighttpd@33727',
      'src/third_party/mingw-w64/mingw/bin':
         'http://src.chromium.org/native_client/trunk/src/third_party/mingw-w64/mingw/bin@5308',
      'src/third_party/pefile':
         'http://pefile.googlecode.com/svn/trunk@63',
      'src/chrome/tools/test/reference_build/chrome':
         '/trunk/deps/reference_builds/chrome@70122',
      'src/third_party/nss':
         '/trunk/deps/third_party/nss@83672',
   },
   'mac': {
      'src/third_party/WebKit/WebKitLibraries':
         'http://svn.webkit.org/repository/webkit/branches/chromium/782/WebKitLibraries@93192',
      'src/third_party/GTM':
         'http://google-toolbox-for-mac.googlecode.com/svn/trunk@440',
      'src/third_party/pdfsqueeze':
         'http://pdfsqueeze.googlecode.com/svn/trunk@4',
      'src/chrome/installer/mac/third_party/xz/xz':
         '/trunk/deps/third_party/xz@50504',
      'src/third_party/swig/mac':
         '/trunk/deps/third_party/swig/mac@69281',
      'src/chrome/tools/test/reference_build/chrome_mac':
         '/trunk/deps/reference_builds/chrome_mac@71120',
      'src/third_party/lighttpd':
         '/trunk/deps/third_party/lighttpd@33737',
      'src/third_party/nss':
         '/trunk/deps/third_party/nss@83672',
   },
   'unix': {
      'src/third_party/xdg-utils':
         '/trunk/deps/third_party/xdg-utils@84895',
      'src/third_party/openssl':
         '/trunk/deps/third_party/openssl@69192',
      'src/chrome/tools/test/reference_build/chrome_linux':
         '/trunk/deps/reference_builds/chrome_linux@70120',
      'src/third_party/swig/linux':
         '/trunk/deps/third_party/swig/linux@69281',
      'src/third_party/cros':
         'http://git.chromium.org/git/cros.git@27e31209',
      'src/third_party/WebKit/Tools/gdb':
         'http://svn.webkit.org/repository/webkit/branches/chromium/782/Tools/gdb@93192',
      'src/third_party/lss':
         'http://linux-syscall-support.googlecode.com/svn/trunk/lss@3',
   },
}

deps = {
   'src/third_party/skia/include':
      'http://skia.googlecode.com/svn/branches/chrome/782a/trunk/include@1536',
   'src/third_party/flac':
      '/trunk/deps/third_party/flac@75901',
   'src/chrome/test/data/layout_tests/LayoutTests/fast/workers':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/fast/workers@93192',
   'src/chrome/test/data/layout_tests/LayoutTests/http/tests/xmlhttprequest':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/http/tests/xmlhttprequest@93192',
   'src/chrome/test/data/layout_tests/LayoutTests/platform/chromium/fast/workers':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/platform/chromium/fast/workers@93192',
   'src/third_party/webdriver/python/selenium/test':
      'http://selenium.googlecode.com/svn/trunk/py/test@12107',
   'src/chrome/test/data/layout_tests/LayoutTests/fast/js/resources':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/fast/js/resources@93192',
   'src/chrome/test/data/layout_tests/LayoutTests/platform/chromium-mac/http/tests/workers':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/platform/chromium-mac/http/tests/workers@93192',
   'src/chrome/test/data/layout_tests/LayoutTests/http/tests/resources':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/http/tests/resources@93192',
   'src/third_party/skia/gpu':
      'http://skia.googlecode.com/svn/branches/chrome/782a/trunk/gpu@1552',
   'src/chrome/test/data/layout_tests/LayoutTests/storage/domstorage':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/storage/domstorage@93192',
   'src/third_party/safe_browsing/testing':
      'http://google-safe-browsing.googlecode.com/svn/trunk/testing@106',
   'src/third_party/WebKit':
      '/trunk/deps/third_party/WebKit@76115',
   'src/chrome/test/data/layout_tests/LayoutTests/fast/events':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/fast/events@93192',
   'src/third_party/bidichecker':
      'http://bidichecker.googlecode.com/svn/trunk/lib@4',
   'src/third_party/ots':
      'http://ots.googlecode.com/svn/trunk@66',
   'src/third_party/pylib':
      'http://src.chromium.org/native_client/trunk/src/third_party/pylib@5308',
   'src/chrome/test/data/layout_tests/LayoutTests/http/tests/workers':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/http/tests/workers@93192',
   'src/testing/gmock':
      'http://googlemock.googlecode.com/svn/trunk@374',
   'src/chrome/test/data/extensions/api_test/permissions/nacl_enabled/bin':
      'http://src.chromium.org/native_client/trunk/src/native_client/tests/prebuilt@5493',
   'src/native_client':
      'http://src.chromium.org/native_client/trunk/src/native_client@5493',
   'src/chrome/test/data/layout_tests/LayoutTests/fast/filesystem/workers':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/fast/filesystem/workers@93192',
   'src/sdch/open-vcdiff':
      'http://open-vcdiff.googlecode.com/svn/trunk@28',
   'src/chrome/test/data/layout_tests/LayoutTests/platform/chromium-win/storage/domstorage':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/platform/chromium-win/storage/domstorage@93192',
   'src/tools/page_cycler/acid3':
      '/trunk/deps/page_cycler/acid3@19546',
   'src/chrome/test/data/layout_tests/LayoutTests/fast/filesystem/resources':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/fast/filesystem/resources@93192',
   'src/build/util/support':
      '/trunk/deps/support@20411',
   'src/third_party/libjingle/source':
      'http://libjingle.googlecode.com/svn/trunk@63',
   'src':
      '/branches/782_215/src@98754',
   'src/third_party/WebKit/Tools/DumpRenderTree':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/Tools/DumpRenderTree@93192',
   'src/third_party/hunspell':
      '/trunk/deps/third_party/hunspell@65351',
   'src/chrome/test/data/layout_tests/LayoutTests/http/tests/appcache':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/http/tests/appcache@93192',
   'src/testing/gtest':
      'http://googletest.googlecode.com/svn/trunk@560',
   'src/v8':
      'http://v8.googlecode.com/svn/branches/3.3@8925',
   'src/third_party/libvpx':
      '/trunk/deps/third_party/libvpx@81610',
   'src/breakpad/src':
      'http://google-breakpad.googlecode.com/svn/trunk/src@786',
   'chromeos':
      '/trunk/src/tools/cros.DEPS@87450',
   'src/googleurl':
      'http://google-url.googlecode.com/svn/trunk@155',
   'src/third_party/hunspell_dictionaries':
      '/trunk/deps/third_party/hunspell_dictionaries@79099',
   'src/chrome/test/data/layout_tests/LayoutTests/platform/chromium-win/fast/events':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/platform/chromium-win/fast/events@93192',
   'src/third_party/leveldb':
      'http://leveldb.googlecode.com/svn/trunk@29',
   'src/third_party/scons-2.0.1':
      'http://src.chromium.org/native_client/trunk/src/third_party/scons-2.0.1@5308',
   'src/third_party/webdriver/python/selenium':
      'http://selenium.googlecode.com/svn/trunk/py/selenium@12107',
   'src/third_party/WebKit/Source':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/Source@93192',
   'src/third_party/WebKit/LayoutTests':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests@93192',
   'src/third_party/snappy/src':
      'http://snappy.googlecode.com/svn/trunk@37',
   'src/chrome/test/data/layout_tests/LayoutTests/http/tests/websocket/tests':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/http/tests/websocket/tests@93192',
   'src/chrome/test/data/layout_tests/LayoutTests/media':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/media@93192',
   'src/chrome/test/data/layout_tests/LayoutTests/platform/chromium-mac/fast/events':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/platform/chromium-mac/fast/events@93192',
   'src/third_party/libjpeg_turbo':
      '/trunk/deps/third_party/libjpeg_turbo@83675',
   'src/chrome/test/data/layout_tests/LayoutTests/platform/chromium-mac/storage/domstorage':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/platform/chromium-mac/storage/domstorage@93192',
   'src/tools/gyp':
      'http://gyp.googlecode.com/svn/trunk@930',
   'src/third_party/skia/src':
      'http://skia.googlecode.com/svn/branches/chrome/782a/trunk/src@1895',
   'src/third_party/ffmpeg':
      '/trunk/deps/third_party/ffmpeg/source@83815',
   'src/third_party/cacheinvalidation/files/src/google':
      'http://google-cache-invalidation-api.googlecode.com/svn/trunk/src/google@80',
   'src/chrome/test/data/layout_tests/LayoutTests/platform/chromium-win/fast/workers':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/platform/chromium-win/fast/workers@93192',
   'src/third_party/WebKit/Tools/Scripts':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/Tools/Scripts@93192',
   'src/chrome/test/data/layout_tests/LayoutTests/http/tests/filesystem':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/http/tests/filesystem@93192',
   'src/third_party/icu':
      '/trunk/deps/third_party/icu46@90787',
   'src/third_party/speex':
      '/trunk/deps/third_party/speex@83190',
   'src/seccompsandbox':
      'http://seccompsandbox.googlecode.com/svn/trunk@153',
   'src/third_party/yasm/source/patched-yasm':
      '/trunk/deps/third_party/yasm/patched-yasm@73761',
   'src/chrome/test/data/layout_tests/LayoutTests/platform/chromium-win/http/tests/workers':
      'http://svn.webkit.org/repository/webkit/branches/chromium/782/LayoutTests/platform/chromium-win/http/tests/workers@93192',
   'src/third_party/angle':
      'http://angleproject.googlecode.com/svn/branches/chrome_m13@726',
   'src/third_party/swig/Lib':
      '/trunk/deps/third_party/swig/Lib@69281',
}

skip_child_includes =  ['breakpad', 'chrome_frame', 'native_client', 'o3d', 'pdf', 'sdch', 'skia', 'testing', 'third_party', 'v8']

hooks =  [{'action': ['python', 'src/build/gyp_chromium'], 'pattern': '.'}, {'action': ['python', 'src/build/download_nacl_irt.py', '--nacl_revision', '5493', '--file_hash', 'x86_32', '6aff4ea5ebdf9d57bd2e01caa662efd58d6bae18', '--file_hash', 'x86_64', '88deae19ead39075214964fc1511ce0e1f3a0fe9'], 'pattern': '.'}]

include_rules =  ['+base', '+build', '+ipc', '+unicode', '+testing']


If anybody knows why the DEBS file for a particular release can change after the release is made, I sure would like to know.

1 comment to Building Old Chromium Releases Often Fails

  • Honey Stottlar

    Acquiring go through this I assumed it had been quite beneficial. I value you taking some time and energy to place this informative article jointly. I the moment once again discover myself investing strategy to considerably time equally looking at and commenting. But so what, it absolutely was even now worthwhile!