Chromium
Материал из ALT Linux Wiki
(Новая страница: «== Статус == Собираются версии из транка SVN (Continuous build), майнтейнер старается вычитывать лог к...») |
(→Статус) |
||
(8 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
== Статус == | == Статус == | ||
- | + | ||
+ | {{Since|37.0.2062.120}} исходный код получается по инструкции http://www.chromium.org/developers/how-tos/get-the-code | ||
+ | |||
+ | Архив с исходным кодом: https://commondatastorage.googleapis.com/chromium-browser-official/chromium-37.0.2062.120.tar.xz | ||
== Специфичные изменения == | == Специфичные изменения == | ||
+ | |||
+ | === Патчи === | ||
+ | * {{path|chromium-20090929-no-sqlite-debug.patch}}: взят из Fedora, согласно комментарию в спеке исправляет некое падение. | ||
+ | * {{path|chromium-20100429-ubuntu-disable-dlog_and_dcheck-in-release-builds.patch}}: взят из Ubuntu, убирает отладочные макросы из релизной сборки. | ||
+ | |||
+ | === Библиотеки === | ||
+ | Дерево исходников содержит (в основном в каталоге {{path|third_party}}) копии многих внешних проектов, в большинстве случаев изменённые локально. В некоторых случаях через параметры use_system_* можно включить сборку с системными версиями, но это не всегда правильно и точно имеет смысл лишь для тех библиотек, чьи копии в дереве не изменены относительно апстримных. Библиотеки ffmpeg заменены символическими ссылками на системные версии, упакованными в отдельный пакет. | ||
+ | |||
+ | === Облегчение дерева исходников === | ||
+ | Поскольку дерево содержит сотни мегабайт данных, не требующихся для сборки (либо вообще, либо для Linux/для ALT), их желательно удалять для уменьшения размера репозитория и использования ресурсов сборочной системы. В случае дополнительных репозиториев их можно отключать целиком через файл {{path|.gclient}}, в случае отдельных каталогов можно запрещать их экспорт правкой скрипта {{path|export_tarball.py}}. | ||
+ | |||
+ | === Sandbox === | ||
+ | Используется seccomp sandbox, сборка SUID helper отключена. Для работы seccomp sandbox требуется включённый в ядре CONFIG_SECCOMP. В случае проблем рекомендуется отключить сэндбоксинг (осознавая последствия) ключом --disable-seccomp-sandbox и пойти плакаться в апстрим (по умолчанию везде всё ещё используется SUID sandbox, потому проблемы возможны). | ||
+ | |||
== Инструкции по самостоятельной сборке == | == Инструкции по самостоятельной сборке == | ||
=== Получение оригинального дерева === | === Получение оригинального дерева === | ||
- | * | + | * Получите depot_tools из его [http://src.chromium.org/svn/trunk/tools/depot_tools/ SVN-репозитория] и создайте в $PATH файл {{path|gclient}} примерно следующего содержания: |
+ | <source lang="bash"> | ||
+ | #!/bin/sh | ||
+ | exec python "/path/to/depot_tools/gclient.py" "$@" | ||
+ | </source> | ||
* Создайте каталог, где будет лежать рабочая копия SVN, и положите туда файл {{path|.gclient}} примерно следующего содержания: | * Создайте каталог, где будет лежать рабочая копия SVN, и положите туда файл {{path|.gclient}} примерно следующего содержания: | ||
<source lang="python"> | <source lang="python"> | ||
solutions = [ | solutions = [ | ||
- | { "name" : " | + | { "name" : "35.0.1916.114", |
- | "url" : " | + | "url" : "https://src.chromium.org/chrome/releases/35.0.1916.114", |
- | "custom_deps" : { | + | "deps_file" : "DEPS", |
- | "src/ | + | "managed" : True, |
- | "src/chrome/test/ | + | |
- | "src/ | + | "custom_deps": { |
- | "src/chrome/test/ | + | "src/content/test/data/layout_tests/LayoutTests": None, |
- | "src/chrome/test/ | + | "src/chrome/tools/test/reference_build/chrome_win": None, |
- | "src/ | + | "src/chrome_frame/tools/test/reference_build/chrome_win": None, |
- | "src/chrome/test/data/ | + | "src/chrome/tools/test/reference_build/chrome_linux": None, |
- | "src/chrome/test/data/layout_tests | + | "src/chrome/tools/test/reference_build/chrome_mac": None, |
+ | "src/native_client_sdk/src/build_tools/toolchain_archives": None, | ||
+ | "src/chrome/test/data/extensions/api_test/permissions/nacl_enabled/bin": None, | ||
+ | "src/chrome/test/data/layout_tests": None, | ||
"src/chrome/tools/test/reference_build": None, | "src/chrome/tools/test/reference_build": None, | ||
- | "src/third_party/ffmpeg/binaries/ | + | "src/third_party/ffmpeg/binaries": None, |
- | "src/ | + | "src/chrome/test/data/layout_tests": None, |
- | "src/third_party/ffmpeg/ | + | "src/chrome/tools/test/reference_build/chrome_linux": None, |
- | "src/third_party/ | + | "src/third_party/ffmpeg/source/patched-ffmpeg-mt": None, |
+ | "src/third_party/hunspell_dictionaries": None, | ||
+ | "src/third_party/yasm/source/patched-yasm": None, | ||
+ | "src/native_client/toolchain": None, | ||
+ | |||
}, | }, | ||
- | "safesync_url": " | + | |
- | } | + | "safesync_url": "", |
- | ] | + | }, |
- | </source> | + | ]</source> |
- | Этот файл был создан согласно инструкции [http://dev.chromium.org/developers/how-tos/get-the-code Get the Code] командой {{cmd|gclient config http://src.chromium.org/svn/trunk/src}} и затем отредактирован | + | Этот файл был создан согласно инструкции [http://dev.chromium.org/developers/how-tos/get-the-code Get the Code] командой {{cmd|gclient config http://src.chromium.org/svn/trunk/src}} и затем отредактирован. |
* Выполните команду {{cmd|gclient sync --nohooks}} и дождитесь окончания скачивания всех репозиториев. После этого в каталоге {{path|src/}} будет лежать дерево исходников. В дальнейшем эта же команда будет обновлять это дерево. | * Выполните команду {{cmd|gclient sync --nohooks}} и дождитесь окончания скачивания всех репозиториев. После этого в каталоге {{path|src/}} будет лежать дерево исходников. В дальнейшем эта же команда будет обновлять это дерево. | ||
Строка 43: | Строка 71: | ||
mv /path/to/chromium-browser.git/{src,chromium-browser} | mv /path/to/chromium-browser.git/{src,chromium-browser} | ||
* Закоммитьте новую версию дерева: | * Закоммитьте новую версию дерева: | ||
- | git add chromium-browser | + | git add -f chromium-browser |
git commit -s chromium-browser -m "r77777" | git commit -s chromium-browser -m "r77777" | ||
Используйте ревизию из {{cmd|svn info src}} (у различных дополнительных репозиториев будут другие номера ревизий). | Используйте ревизию из {{cmd|svn info src}} (у различных дополнительных репозиториев будут другие номера ревизий). | ||
* Обновите в спек-файле номер ревизии (см.выше) и версии (из {{path|chromium-browser/chrome/VERSION}}). | * Обновите в спек-файле номер ревизии (см.выше) и версии (из {{path|chromium-browser/chrome/VERSION}}). |
Текущая версия на 10:13, 10 сентября 2014
Содержание |
Статус
с версии 37.0.2062.120 исходный код получается по инструкции http://www.chromium.org/developers/how-tos/get-the-code
Архив с исходным кодом: https://commondatastorage.googleapis.com/chromium-browser-official/chromium-37.0.2062.120.tar.xz
Специфичные изменения
Патчи
- chromium-20090929-no-sqlite-debug.patch: взят из Fedora, согласно комментарию в спеке исправляет некое падение.
- chromium-20100429-ubuntu-disable-dlog_and_dcheck-in-release-builds.patch: взят из Ubuntu, убирает отладочные макросы из релизной сборки.
Библиотеки
Дерево исходников содержит (в основном в каталоге third_party) копии многих внешних проектов, в большинстве случаев изменённые локально. В некоторых случаях через параметры use_system_* можно включить сборку с системными версиями, но это не всегда правильно и точно имеет смысл лишь для тех библиотек, чьи копии в дереве не изменены относительно апстримных. Библиотеки ffmpeg заменены символическими ссылками на системные версии, упакованными в отдельный пакет.
Облегчение дерева исходников
Поскольку дерево содержит сотни мегабайт данных, не требующихся для сборки (либо вообще, либо для Linux/для ALT), их желательно удалять для уменьшения размера репозитория и использования ресурсов сборочной системы. В случае дополнительных репозиториев их можно отключать целиком через файл .gclient, в случае отдельных каталогов можно запрещать их экспорт правкой скрипта export_tarball.py.
Sandbox
Используется seccomp sandbox, сборка SUID helper отключена. Для работы seccomp sandbox требуется включённый в ядре CONFIG_SECCOMP. В случае проблем рекомендуется отключить сэндбоксинг (осознавая последствия) ключом --disable-seccomp-sandbox и пойти плакаться в апстрим (по умолчанию везде всё ещё используется SUID sandbox, потому проблемы возможны).
Инструкции по самостоятельной сборке
Получение оригинального дерева
- Получите depot_tools из его SVN-репозитория и создайте в $PATH файл gclient примерно следующего содержания:
#!/bin/sh exec python "/path/to/depot_tools/gclient.py" "$@"
- Создайте каталог, где будет лежать рабочая копия SVN, и положите туда файл .gclient примерно следующего содержания:
solutions = [ { "name" : "35.0.1916.114", "url" : "https://src.chromium.org/chrome/releases/35.0.1916.114", "deps_file" : "DEPS", "managed" : True, "custom_deps": { "src/content/test/data/layout_tests/LayoutTests": None, "src/chrome/tools/test/reference_build/chrome_win": None, "src/chrome_frame/tools/test/reference_build/chrome_win": None, "src/chrome/tools/test/reference_build/chrome_linux": None, "src/chrome/tools/test/reference_build/chrome_mac": None, "src/native_client_sdk/src/build_tools/toolchain_archives": None, "src/chrome/test/data/extensions/api_test/permissions/nacl_enabled/bin": None, "src/chrome/test/data/layout_tests": None, "src/chrome/tools/test/reference_build": None, "src/third_party/ffmpeg/binaries": None, "src/chrome/test/data/layout_tests": None, "src/chrome/tools/test/reference_build/chrome_linux": None, "src/third_party/ffmpeg/source/patched-ffmpeg-mt": None, "src/third_party/hunspell_dictionaries": None, "src/third_party/yasm/source/patched-yasm": None, "src/native_client/toolchain": None, }, "safesync_url": "", }, ]
Этот файл был создан согласно инструкции Get the Code командой gclient config http://src.chromium.org/svn/trunk/src и затем отредактирован.
- Выполните команду gclient sync --nohooks и дождитесь окончания скачивания всех репозиториев. После этого в каталоге src/ будет лежать дерево исходников. В дальнейшем эта же команда будет обновлять это дерево.
Обновление репозитория gear
- Склонируйте репозиторий http://git.altlinux.org/people/wrar/packages/chromium-browser.git
- Удалите старое дерево:
git rm -r chromium-browser rm -rf chromium-browser
- Экспортируйте новое дерево (из каталога с .gclient):
/path/to/chromium-browser.git/export_tarball.py --remove-nonessential-files /path/to/chromium-browser mv /path/to/chromium-browser.git/{src,chromium-browser}
- Закоммитьте новую версию дерева:
git add -f chromium-browser git commit -s chromium-browser -m "r77777"
Используйте ревизию из svn info src (у различных дополнительных репозиториев будут другие номера ревизий).
- Обновите в спек-файле номер ревизии (см.выше) и версии (из chromium-browser/chrome/VERSION).