Upgrade to Pro — share decks privately, control downloads, hide ads and more …

NSEG 19/08 chromiumカスタムビルド

NSEG 19/08 chromiumカスタムビルド

D05b3b2abff3f73f249a01d60257bdde?s=128

hATrayflood

August 10, 2019
Tweet

Transcript

  1. 2019/8/10 NSEG 19/08 chromium カスタムビルド by ABE Hiroki aka hATrayflood

  2. 2019/8/10 NSEG 19/08 お前 誰︖ by ABE Hiroki aka hATrayflood

  3. 2019/8/10 NSEG 19/08 ⾃⼰紹介 ・名前︓アベヒロキ (@hATrayflood) ・職業︓⾃宅サーバ管理者 ・URL︓rayflood.org/diary-temp/ ・地元︓東部町 by

    ABE Hiroki aka hATrayflood
  4. 2019/8/10 NSEG 19/08 OSSの主な領域 ・firefox ・python ・ubuntu ・コンパイラ by ABE

    Hiroki aka hATrayflood
  5. 2019/8/10 NSEG 19/08 chromium とは by ABE Hiroki aka hATrayflood

  6. 2019/8/10 NSEG 19/08 google chrome の基礎となる オープンソースの ウェブブラウザー by ABE

    Hiroki aka hATrayflood
  7. 2019/8/10 NSEG 19/08 https://www.chromium.org/ by ABE Hiroki aka hATrayflood

  8. 2019/8/10 NSEG 19/08 google chrome とは by ABE Hiroki aka

    hATrayflood
  9. 2019/8/10 NSEG 19/08 chromiumに google独⾃の 機能を⾜したもの by ABE Hiroki aka

    hATrayflood
  10. 2019/8/10 NSEG 19/08 ・Flash Player ・⾃動アップデート ・google連携 などなど by ABE

    Hiroki aka hATrayflood
  11. 2019/8/10 NSEG 19/08 実はchromeは chromiumの カスタムビルド by ABE Hiroki aka

    hATrayflood
  12. 2019/8/10 NSEG 19/08 プロプライエタリな コンポーネントを含む 全てがオープンではない 不⾃由なブラウザー by ABE Hiroki

    aka hATrayflood
  13. 2019/8/10 NSEG 19/08 chrome以外の chromiumベース のブラウザー by ABE Hiroki aka

    hATrayflood
  14. 2019/8/10 NSEG 19/08 ・Opera ・Vivaldi ・Brave ・Sleipnir ・Microsoft Edge ほかにもたくさん

    by ABE Hiroki aka hATrayflood
  15. 2019/8/10 NSEG 19/08 chromium公式バイナリはない linuxは各ディストリビューターが ビルドしてパッケージ配布してる by ABE Hiroki aka

    hATrayflood
  16. 2019/8/10 NSEG 19/08 ⾮公式版の配布サイトはある https://chromium.woolyss.com/ ⾃動アップデートは不可 by ABE Hiroki aka

    hATrayflood
  17. 2019/8/10 NSEG 19/08 Opera IE, Netscapeに次ぐ第3のブラウザー 派⽣元がない独⾃のレンダリングエンジン 2013にchromiumベースに移⾏ 以前は謎のカルト的⼈気 by

    ABE Hiroki aka hATrayflood
  18. 2019/8/10 NSEG 19/08 Vivaldi OperaのCEOだったテッツナーが設⽴ My Opera コミュニティ閉鎖を受けて 旧Operaの精神の復活が⽬的 ⾒た⽬は現Operaに似てる

    by ABE Hiroki aka hATrayflood
  19. 2019/8/10 NSEG 19/08 Brave 元mozillaでJavaScript開発の ブレンダン・アイクが設⽴ 広告表⽰に関して特異な戦略 by ABE Hiroki

    aka hATrayflood
  20. 2019/8/10 NSEG 19/08 Sleipnir 初期のタブブラウザといえばこれ レンダリングエンジンの選択が 可能だった。現在はblinkのみ フォントレンダリングが⾃慢 by ABE

    Hiroki aka hATrayflood
  21. 2019/8/10 NSEG 19/08 Microsoft Edge Windows 10の標準ブラウザー 2018末にchromium移⾏を発表 chromium版の正式リリースはまだ by

    ABE Hiroki aka hATrayflood
  22. 2019/8/10 NSEG 19/08 共通点 ・独⾃UIまたはUIカスタマイズ ・⾃動更新機能 ・Flashなし ・広告ブロック ・同期サービス by

    ABE Hiroki aka hATrayflood
  23. 2019/8/10 NSEG 19/08 Edgeのchromium移⾏に対する反応 https://twitter.com/fladdict/status/1070837743368863745 https://twitter.com/shimaguniyamato/status/1070840394269712384 https://twitter.com/shachi/status/1070845317279473664 https://twitter.com/themeofn/status/1070850201181609984 by ABE

    Hiroki aka hATrayflood
  24. 2019/8/10 NSEG 19/08 それに対する⾃⾝の反応 https://twitter.com/hATrayflood/status/1070845517700063238 https://twitter.com/hATrayflood/status/1072988404961267712 by ABE Hiroki aka

    hATrayflood
  25. 2019/8/10 NSEG 19/08 良識ある(と感じる)反応 https://twitter.com/dynamitter/status/1070762200610947073 https://twitter.com/osamum_MS/status/1070984687974154240 https://twitter.com/tkihira/status/1070839314660057088 https://twitter.com/clockmaker/status/1070854032862760960 https://twitter.com/Stocker_jp/status/1070876629621071872 by

    ABE Hiroki aka hATrayflood
  26. 2019/8/10 NSEG 19/08 本題 by ABE Hiroki aka hATrayflood

  27. 2019/8/10 NSEG 19/08 chromium のビルドは by ABE Hiroki aka hATrayflood

  28. 2019/8/10 NSEG 19/08 地獄 by ABE Hiroki aka hATrayflood

  29. 2019/8/10 NSEG 19/08 ソースフォルダ 31GB by ABE Hiroki aka hATrayflood

  30. 2019/8/10 NSEG 19/08 androidビルド 41GB by ABE Hiroki aka hATrayflood

  31. 2019/8/10 NSEG 19/08 フルビルド 4-5時間 by ABE Hiroki aka hATrayflood

  32. 2019/8/10 NSEG 19/08 決して安易な気持ちで ビルドしようとは 思わないでください by ABE Hiroki aka

    hATrayflood
  33. 2019/8/10 NSEG 19/08 あまりの重さに 必ず途中で 投げだします by ABE Hiroki aka

    hATrayflood
  34. 2019/8/10 NSEG 19/08 それでもビルド した理由は お察しください by ABE Hiroki aka

    hATrayflood
  35. 2019/8/10 NSEG 19/08 ⼀般的なOSS のビルド⽅法 by ABE Hiroki aka hATrayflood

  36. 2019/8/10 NSEG 19/08 wget https://www.python.org/ftp/ python/3.7.4/Python-3.7.4.tar.xz tar Jxf Python-3.7.4.tar.xz cd

    Python-3.7.4 ./configure --prefix=/opt/python3 make by ABE Hiroki aka hATrayflood
  37. 2019/8/10 NSEG 19/08 chromium のビルド⽅法 by ABE Hiroki aka hATrayflood

  38. 2019/8/10 NSEG 19/08 git clone https://chromium.googlesource.com /chromium/tools/depot_tools.git export PATH="$PATH:`pwd`/depot_tools" mkdir

    chromium && cd chromium fetch --nohooks chromium by ABE Hiroki aka hATrayflood
  39. 2019/8/10 NSEG 19/08 ソースアーカイブがない gitリポジトリをclone するだけでは不⼗分で 専⽤ツールが必要 by ABE Hiroki

    aka hATrayflood
  40. 2019/8/10 NSEG 19/08 chromium本体のリポジトリはこちら https://chromium.googlesource.com/chromium/src.git fetchで1時間以上かかった。。 ⼀応githubにはソースアーカイブがあるが現実的ではない https://github.com/chromium/chromium/releases ブラウザーでもcurlコマンドでも結局ダウンロードできず。。 by

    ABE Hiroki aka hATrayflood
  41. 2019/8/10 NSEG 19/08 cd src ./build/install-build-deps.sh gclient sync by ABE

    Hiroki aka hATrayflood
  42. 2019/8/10 NSEG 19/08 ビルドに必要なパッケージと パッケージ化されてないツール リポジトリに⼊ってない 他のOSSプロジェクトを取得 by ABE Hiroki

    aka hATrayflood
  43. 2019/8/10 NSEG 19/08 バージョンが上がると必要なものが 変わる可能性があるので これらは適当なタイミングで 再実⾏しましょう gclient syncも時間かかる。。 by

    ABE Hiroki aka hATrayflood
  44. 2019/8/10 NSEG 19/08 windowsやmacの場合は ./build/install-build-deps.sh の代わりに、visual studioや xcodeをインストールしておきましょう by ABE

    Hiroki aka hATrayflood
  45. 2019/8/10 NSEG 19/08 gn gen --args='is_debug=false' out by ABE Hiroki

    aka hATrayflood
  46. 2019/8/10 NSEG 19/08 configureもconfigure.inもなく 独⾃ツールのコマンドを使います gn args --list out でビルドオプションの確認が可能

    by ABE Hiroki aka hATrayflood
  47. 2019/8/10 NSEG 19/08 cd out ninja chrome by ABE Hiroki

    aka hATrayflood
  48. 2019/8/10 NSEG 19/08 makeではなくninja 初期はmakeを使ってたらしい ninjaの由来は速いからだとか https://mag.osdn.jp /11/02/09/0832255 by ABE

    Hiroki aka hATrayflood
  49. 2019/8/10 NSEG 19/08 -C outで実⾏ディレクトリの 指定も可能。makeと同じ chromeはビルドターゲットで デスクトップ版をビルドする by ABE

    Hiroki aka hATrayflood
  50. 2019/8/10 NSEG 19/08 autoninjaもある cpuコア数に応じて -j 4とかに⾃動調整 gnはgenerate ninja by

    ABE Hiroki aka hATrayflood
  51. 2019/8/10 NSEG 19/08 5時間後 by ABE Hiroki aka hATrayflood

  52. 2019/8/10 NSEG 19/08 こうなりました by ABE Hiroki aka hATrayflood

  53. 2019/8/10 NSEG 19/08 android版 のビルド by ABE Hiroki aka hATrayflood

  54. 2019/8/10 NSEG 19/08 cd src ./build/install-build-deps-android.sh echo "target_os = [\"android\"]"

    >> ../.gclient gclient sync by ABE Hiroki aka hATrayflood
  55. 2019/8/10 NSEG 19/08 androidはandroid sdkや android ndkが追加で必要 by ABE Hiroki

    aka hATrayflood
  56. 2019/8/10 NSEG 19/08 gn gen --args='is_debug=false target_os="android"' out-android cd out-android

    ninja chrome_public_apk でandroid版chromiumのapkをビルド by ABE Hiroki aka hATrayflood
  57. 2019/8/10 NSEG 19/08 chrome_public_apk minSdkVersion=16 (Android 4.1) minSdkVersion=19 (Android 4.4)

    chrome_modern_public_apk minSdkVersion=21 (Android 5.0) monochrome_public_apk minSdkVersion=24 (Android 7.0) by ABE Hiroki aka hATrayflood
  58. 2019/8/10 NSEG 19/08 ターゲットは3つ同時に指定可能で 3種類のapkを⼀発でビルド可能 target_cpu="arm64"を加えれば arm64のapkもビルド可能 by ABE Hiroki

    aka hATrayflood
  59. 2019/8/10 NSEG 19/08 arm64のmonochrome_public_apk は32bitのarmバイナリも含まれているので 端末を問わず利⽤可能 by ABE Hiroki aka

    hATrayflood
  60. 2019/8/10 NSEG 19/08 が、monochrome_public_apk単独ではビルドできず chrome_public_apkを同時か事前にビルドしないと 途中でエラーになるという謎のバグがある。。 by ABE Hiroki aka

    hATrayflood
  61. 2019/8/10 NSEG 19/08 開発最新版ではなく 安定版をビルドしたい by ABE Hiroki aka hATrayflood

  62. 2019/8/10 NSEG 19/08 cd src git checkout -b stable_75 75.0.3770.156

    ./build/install-build-deps.sh gclient sync --with_branch_heads --with_tags gn gen --args='is_debug=false' out cd out ninja chrome by ABE Hiroki aka hATrayflood
  63. 2019/8/10 NSEG 19/08 ビルドしたいバージョンのタグを 適当なブランチ名でチェックアウトする gclient syncの --with_branch_heads --with_tags がキモで、このオプションがないとエラー

    by ABE Hiroki aka hATrayflood
  64. 2019/8/10 NSEG 19/08 準備運動 はここまで by ABE Hiroki aka hATrayflood

  65. 2019/8/10 NSEG 19/08 ・リンク集 twitter @hATrayflood http://twitter.com/hATrayflood The Chromium Projects

    https://www.chromium.org/ Download latest stable Chromium binaries (64-bit and 32-bit) https://chromium.woolyss.com/ Opera https://www.opera.com/ja Vivaldi https://vivaldi.com/ja/ Brave https://brave.com/ Sleipnir https://www.fenrir-inc.com/jp/sleipnir/ Microsoft Edge https://www.microsoft.com/ja-jp/windows/microsoft-edge by ABE Hiroki aka hATrayflood
  66. 2019/8/10 NSEG 19/08 Piro/Linuxコマンド操作解説マンガ連載中さんのツイート: "正式な発表が出てたんだ。Geckoにとっては最後のひと押しというか、ダメ押しになったね……" https://twitter.com/piro_or/status/1070833315869974529 Microsoft EdgeがChromiumベースにすると公式に発表。 多様性が失われるウェブへの懸念と祝福の声と -

    Togetter https://togetter.com/li/1295971 Checking out and building Chromium on Linux https://chromium.googlesource.com/chromium/src/+/master/docs/linux_build_instructions.md Checking out and building Chromium for Android https://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.md GN build configuration https://www.chromium.org/developers/gn-build-configuration Working with Release Branches https://www.chromium.org/developers/how-tos/get-the-code/working-with-release-branches by ABE Hiroki aka hATrayflood