webdino / amethyst

Simple WebViewer App for embedded systems (patches for Firefox/Gecko)
https://gecko-embedded.org/docs/webviewer/
5 stars 1 forks source link

ブランディングの変更 (Firefox ブランド削除) #26

Closed dynamis closed 4 years ago

dynamis commented 5 years ago

Mozilla Firefox ブランドではなくすパッチを用意する。既に以前クリアコードで開発したもの (WIP かもしれない) を Renesas さんが持っているのでその中身を確認、必要に応じて変更を行ったものを用意してレシピに投入する。

YoshihiroOota commented 5 years ago

test (*'-')

YoshihiroOota commented 5 years ago

クリアコード様より提供いただいたブランディング変更のファイルは下記の二種類。 (1) Firefox のソースコードを変更するスクリプトファイル(= RZ/G に直接関係なさそう) (2) rzg-browser の対応(記述、ロゴ)を追加した meta-browser

YoshihiroOota commented 5 years ago

(1) Firefox のソースコードを変更するスクリプトファイル(= RZ/G に直接関係なさそう) nobrand.tar.gz

YoshihiroOota commented 5 years ago

(2) rzg-browser の対応(記述、ロゴ)を追加した meta-browser meta-browser-rzg-browser.tar.gz

YoshihiroOota commented 5 years ago

お手数ですが、まずは添付させていただいた二種類のファイルが、想定されているものと同じかどうかご確認をお願いできませんでしょうか。

dynamis commented 5 years ago

当時の meta-browser のリビジョン

commit 5febed32884678963f20783b1e615fbadaf48a37
Author: Takuro Ashie <ashie@clear-code.com>
Date:   Tue Sep 25 13:19:41 2018 +0900

    firefox: Add a PACKAGECONFIG key "branding"

と meta-browser-rzg-browser.tar.gz との差分はこの通り:

Only in meta-browser/: .git
Only in nobrand/meta-browser: HowToBuildRZGBrowser-ja.md
diff -ru meta-browser/recipes-browser/firefox/firefox/mozconfig nobrand/meta-browser/recipes-browser/firefox/firefox/mozconfig
--- meta-browser/recipes-browser/firefox/firefox/mozconfig  2019-04-09 11:20:16.000000000 +0900
+++ nobrand/meta-browser/recipes-browser/firefox/firefox/mozconfig  2018-10-10 12:52:44.000000000 +0900
@@ -5,6 +5,7 @@
 ac_add_options --with-toolchain-prefix="${TARGET_SYS}-"

 ac_add_options --enable-application=browser
+#ac_add_options --enable-official-branding
 ac_add_options --with-app-name=${APP_NAME}

 # for ESR60
diff -ru meta-browser/recipes-browser/firefox/firefox/prefs/autoconfig.cfg nobrand/meta-browser/recipes-browser/firefox/firefox/prefs/autoconfig.cfg
--- meta-browser/recipes-browser/firefox/firefox/prefs/autoconfig.cfg   2019-04-09 11:20:16.000000000 +0900
+++ nobrand/meta-browser/recipes-browser/firefox/firefox/prefs/autoconfig.cfg   2018-10-10 12:52:44.000000000 +0900
@@ -2,7 +2,3 @@
 lockPref("app.update.enabled", false);
 lockPref("extensions.update.enabled", false);
 lockPref("extensions.autoDisableScopes", 10);
-
-// Do not check the default browser
-lockPref("browser.shell.checkDefaultBrowser", false);
-lockPref("browser.shell.skipDefaultBrowserCheckOnFirstRun", true);
diff -ru meta-browser/recipes-browser/firefox/firefox/prefs/vendor.js nobrand/meta-browser/recipes-browser/firefox/firefox/prefs/vendor.js
--- meta-browser/recipes-browser/firefox/firefox/prefs/vendor.js    2019-04-09 11:20:16.000000000 +0900
+++ nobrand/meta-browser/recipes-browser/firefox/firefox/prefs/vendor.js    2018-10-10 12:52:44.000000000 +0900
@@ -1,2 +1,3 @@
 pref("general.useragent.compatMode.firefox", true);
 pref("distribution.searchplugins.defaultLocale", "en-US");
+pref("browser.shell.skipDefaultBrowserCheckOnFirstRun", true);
diff -ru meta-browser/recipes-browser/firefox/firefox_60.1.0esr.bb nobrand/meta-browser/recipes-browser/firefox/firefox_60.1.0esr.bb
--- meta-browser/recipes-browser/firefox/firefox_60.1.0esr.bb   2019-04-09 11:20:16.000000000 +0900
+++ nobrand/meta-browser/recipes-browser/firefox/firefox_60.1.0esr.bb   2018-10-10 12:52:44.000000000 +0900
@@ -4,6 +4,7 @@
                   file://mozilla-firefox.desktop"

 PACKAGECONFIG[branding] = "--enable-official-branding,--disable-official-branding,,"
+PACKAGECONFIG_append = " branding "

 do_install_append() {
     install -d ${D}${datadir}/applications
diff -ru meta-browser/recipes-browser/firefox/firefox_60.1.0esr.inc nobrand/meta-browser/recipes-browser/firefox/firefox_60.1.0esr.inc
--- meta-browser/recipes-browser/firefox/firefox_60.1.0esr.inc  2019-04-10 14:10:13.000000000 +0900
+++ nobrand/meta-browser/recipes-browser/firefox/firefox_60.1.0esr.inc  2018-10-10 12:52:44.000000000 +0900
@@ -17,8 +17,6 @@

 SRC_URI = "https://ftp.mozilla.org/pub/firefox/releases/${PV}/source/firefox-${PV}.source.tar.xz;name=archive \
            file://mozconfig \
-           file://mozilla-firefox.png \
-           file://mozilla-firefox.desktop \
            file://prefs/vendor.js \
            file://prefs/autoconfig.js \
            file://prefs/autoconfig.cfg \
Only in nobrand/meta-browser/recipes-browser/firefox: rzg-browser
Only in nobrand/meta-browser/recipes-browser/firefox: rzg-browser_60.1.0esr.bb

このうちブランディングについて有意な違いは以下の部分。

meta-browser/recipes-browser/firefox/firefox/mozconfig
+#ac_add_options --enable-official-branding

meta-browser/recipes-browser/firefox/firefox_60.1.0esr.bb
+PACKAGECONFIG_append = " branding "

meta-browser/recipes-browser/firefox/firefox_60.1.0esr.inc
-           file://mozilla-firefox.png \
-           file://mozilla-firefox.desktop \

肝心の PACKAGECONFIG の branding の定義は meta-browser 側に入れられており nightly としてビルドする為のコードも入っている: https://github.com/webdino/meta-browser/commit/5febed32884678963f20783b1e615fbadaf48a37 https://github.com/webdino/meta-browser/commit/e556ff995ffd63d7dabafd922547a5b4f4019c69

勿論これだけでは Nightly になるだけで Gecko のコード内の Mozilla / Firefox ブランディングに関わるコードは残るし他の名前に出来ないので、mozilla-central 側のコードを文字列置き換えで RZ/G browser に書き換え対応するのが nobrand.tar.gz のパッチ。 これを meta-browser のビルド手順の中で Gecko のビルドをする前に実行させなければブランディング変更が出来ないが、そこは意図的にレシピには含められていなかった感じかな。

これで全部書き換わるのかどうかはスクリプトを試してみないと分からない。ローカライズビルド作るときなどは処理が足りないと思われるがまぁそこは元々 meta-browser 自体が適当な実装している風に見えるしブラウザの UI を作らない以上はローカライズ自体が不要なので気にする必要はないか。

todo: パッチをあててみたりビルドしてみる。それでまだ自明ではない不明点があれば足永さんに質問する。

dynamis commented 5 years ago

@YoshihiroOota 共有ありがとうございます。

ブランディング変更の過不足については実際に試して確認する必要がありますが、meta-browser 側の変更殆ど既に入っていて実際のブランド変更処理のコードはパッチの方になっているので、それを検証しつつちゃんと使ってビルドすることが必要:

dynamis commented 5 years ago

@YoshihiroOota 現状のコード (スクリプト) ではブラウザ名称として「RZ/G Browser」が採用されています。今回はブラウザとしてビルドするのではなくシンプルに WebViewer にする方向ですが、どのような名称にすべきでしょうか。以下、例えばということでいくつか書いてみます:

hATrayflood commented 5 years ago

firefox 60のソースにnobranding_embedded_gecko.shを実行してビルドした結果です。 nobrand ブランド、ベンダーなどは正しく変更されてますが、アイコンやロゴ画像はbrowser/branding/unofficialのものがそのまま変更なしで使われています。 これら画像はコミュニティビルドとして利用可能なものではあるものの、ブランディング変更という点では不足かもしれません。差し替え画像を用意したうえで、ビルドオプションの--with-branding=dirを指定すると良いかと思います。

次にnobranding_embedded_gecko.shを実行したあとの変更内容です。 nobrand.diff.zip 必要なファイルが正しく変更されている一方で、linuxビルドには必ずしも必要ではないファイルにも変更があるのが気になります。また、一括変換の内容と対象フォルダはシェルを読めばわかるものの一覧性に乏しく、シェルを実行した結果が予測可能とは言い切れません。 ソースの変更は必要最低限のものをパッチファイルで管理すべきかと思います。(プロジェクトの方針などもありますので、必ずそうすべきとまではいえませんが。。)

また、英語以外の言語リソースはfirefoxのソースツリーには含まれておらず、近年では言語リソース側にFirefoxなどのブランドが直接埋め込まれているパターンもあります。さらにブラウザとしてのFirefoxではなく、Firefoxの名前を冠した別のアプリやサービスを指すことも増えており、単純な一括変換ができないケースも出てきています。 @dynamis @YoshihiroOota

YoshihiroOota commented 5 years ago

@dynamis シンプルに WebViewer でお願いします。 HTMLviewerでも良いかと思いましたが、当方は知見が無いので、他者が聞いて自然に感じられる方でお願いします。 手間でなければ、ビルドする際に Define を書き換えるだけで変更できる等、後から簡単に変更できる仕組みが入っていると嬉しいです。 ロゴ画像が必要な場合は、今回は "RZ/G" が含まれないので、Renesas カラーの単色四角■ (default16.png) でお願いします。

dynamis commented 5 years ago

@yoshikuni-kamimiya wrote:

meta-browserに下記2点の対応が必要となる認識です。

A) nobranding_embedded_gecko.shでGeckoコード内を変更 => github上で共有いただいたnobrand.diffをベースに、meta-browser内にパッチとして準備する予定です。

@hATrayflood さんの書いた通り、sh は diff 生成の補助ツールとして使うが yocto のレシピとしては結果の diff パッチを入れて meta-browser に含める形ですね。方針としては私もそれで良いかと思います。補助ツールとしての nobranding_embedded_gecko.sh も meta-browser の amethyst ブランチかこの amethyst ブランチか、何処かにコミットしておきたい気がします。

また、置き換え対象の文字列は @YoshihiroOota さんの指示通り RZ/G Browser ではなく WebViewer になるよう sh を更新した上でもう一度元のファイルに実行し、その diff を使う形でお願いします。

B) meta-browser-rzg-browser.tar.gz で名称やロゴ等の外側の差替えを実施 => amethystブランチにマージ 現状のmeta-browserを差替えてビルドし、rzg-browserを起動した画像を添付します。

DSC_0228

はい。但し @YoshihiroOota さんの書かれているとおり WebViewer になると RZ/G ではないので、ロゴ画像のファイルは差し替えてコミットされるのが良さそうです。

弊社側での今後の主な作業としては、A) のnobrand.diffのようにPC上でのFirefoxのソース差分を提供された際にmeta-browser内に取り込み、それを実機上で確認することになるという認識です。

スクリプト生成 diff には @hATrayflood さんの書いているとおり、不要な部分や、ブラウザではなくサービス名まで置き換えられてしまっていて正しくない部分などもあるため、そこは手作業で修正したバージョンの diff を作って差し替えていくことになるかと思います。

また、webdino/meta-browser の firefox-60esr ブランチは随時更新されていくと思いますが、それを amethyst にマージしていく作業もお願い出来ますでしょうか。

@YoshihiroOota wrote:

シンプルに WebViewer でお願いします。 HTMLviewerでも良いかと思いましたが、当方は知見が無いので、他者が聞いて自然に感じられる方でお願いします。

承知しました。 WebView のつもりで使いたい人が多いので (組込機能を持っているわけではないから WebView というのはちょっと違うので) それに近いものだと理解しやすい WebViewer で良いかと思っています。

手間でなければ、ビルドする際に Define を書き換えるだけで変更できる等、後から簡単に変更できる仕組みが入っていると嬉しいです。

ブランディングの文字列変更は多くの部分は Firefox 自体が brand.dtd など特定のローカライズ文字列ファイルの中で変数定義しているものを置き換えることで可能なのですが、それ以外にもいろいろな所に分散しており、外から一括で全部置き換え可能に定義するものを作るのは少々面倒です (Mozilla が本来やるべき所として頑張ってるものに対する取りこぼし=Mozilla ですらやりきれてない所なので)。

頻繁に変えるものでもないかと思いますし、今回 amethyst に含めていく diff ファイルの生成手順などは明確になるので、再度作るまたは diff ファイル内の文字列置き換えなどで済むわけなので、そのあたりで比較的容易に出来るということでご容赦ください。

ロゴ画像が必要な場合は、今回は "RZ/G" が含まれないので、Renesas カラーの単色四角■ (default16.png) でお願いします。

あの単色四角画像もブラウザアイコン想定のものだったのですね。。。 デスクトップなどにアイコンとして配置するときに流石にそれは辛いと思います。Nightly のロゴについてはそのまま使うか、一般的な地球の形のロゴを Renesas カラーにした方が良いのではないでしょうか?

yoshikuni-kamimiya commented 5 years ago

@dynamis >また、webdino/meta-browser の firefox-60esr ブランチは随時更新されていくと思いますが、それを >amethyst にマージしていく作業もお願い出来ますでしょうか。

かしこまりました。 私が担当させて頂きます。

dynamis commented 5 years ago

@yoshikuni-kamimiya ありがとうございます。それではこちらではひとまず WebViewer 開発の法に注力させて頂きます。

以下、diff をチラ見して気になったポイントを書きます。WebViewer としてビルドするときに動作上の問題になりそうなものは見当たらないが、Firefox のカスタムブランディングパッチとして考えるなら、ダメとは言わないがあまり良くないパッチにはなってる。動作上の影響がなく必須ではないけど余裕があれば少し整理することが望ましい。

-<description>Firefox</description>
+<description>rzg-browser</description>

全般的にだが、元が Firefox でも firefox でも rzg-browser になっているケースがある。実害はないだろうが description などは RZ/G Browser などの方が良さそう。


about ダイアログの get involved リンク先を https://mp.renesas.com/en-us/rzg/community/index.html としているが本当にそれで良いのか。gecko embedded に関して質問が来たらそちらを見ている人たちが回答できない場合ちゃんと質問がエスカレーションする体制になっているか。 gecko-embedded.org サイトを作って誘導した方が良いかも知れない。


diff --git a/browser/components/migration/MigrationUtils.jsm b/browser/components/migration/MigrationUtils.jsm
--- a/browser/components/migration/MigrationUtils.jsm
+++ b/browser/components/migration/MigrationUtils.jsm
@@ -739,7 +739,7 @@ var MigrationUtils = Object.freeze({
       "Internet Explorer":                 "ie",
       "Microsoft Edge":                    "edge",
       "Safari":                            "safari",
-      "Firefox":                           "firefox",
+      "rzg-browser":                           "firefox",
       "Nightly":                           "firefox",
       "Google Chrome":                     "chrome",  // Windows, Linux
       "Chrome":                            "chrome",  // OS X
@@ -756,7 +756,7 @@ var MigrationUtils = Object.freeze({
           .getApplicationDescription("http");
       key = APP_DESC_TO_KEY[browserDesc] || "";
       // Handle devedition, as well as "FirefoxNightly" on OS X.
-      if (!key && browserDesc.startsWith("Firefox")) {
+      if (!key && browserDesc.startsWith("rzg-browser")) {
         key = "firefox";
       }
     } catch (ex) {

どうせ使わないコードなので関係ないとしてちゃんとみてないが、Migration コード変えて大丈夫か? Migration 元のブラウザの名前だったりしないか?手を入れない方が良さそうなモジュール。


diff --git a/browser/confvars.sh b/browser/confvars.sh
--- a/browser/confvars.sh
+++ b/browser/confvars.sh
@@ -53,11 +53,11 @@ MOZ_APP_ID={ec8030f7-c20a-464f-9b0e-13a3
 # of values.
 # The MAR_CHANNEL_ID must not contain the following 3 characters: ",\t "
 if test "$MOZ_UPDATE_CHANNEL" = "aurora"; then
-  ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-aurora
-  MAR_CHANNEL_ID=firefox-mozilla-aurora
+  ACCEPTED_MAR_CHANNEL_IDS=rzg-browser-mozilla-aurora
+  MAR_CHANNEL_ID=rzg-browser-mozilla-aurora
 else
-  ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-esr
-  MAR_CHANNEL_ID=firefox-mozilla-esr
+  ACCEPTED_MAR_CHANNEL_IDS=rzg-browser-mozilla-esr
+  MAR_CHANNEL_ID=rzg-browser-mozilla-esr
 fi
 MOZ_PROFILE_MIGRATOR=1

実害はないけど、存在しない Update チャンネル名を書いても仕方ない。

とかそんなイメージのものが散見されるパッチでした。

hATrayflood commented 5 years ago

現状いただいてるファイルをもとに、より正しいブランディング変更方法をまとめてpushしました。 @dynamis @yoshikuni-kamimiya

YoshihiroOota commented 5 years ago

本件、着手出来ておらず申し訳ありません。一つずつ整理しながら進めさせていただければと思います。 まず、修正を行った nobrand の shellスクリプトの件です。下記の内容を設定するよう、変更いたしました。 ==== name="WebViewer" shortname="WebViewer" appbundle="WebViewer" ==== nobranding_embedded_gecko.sh 内で shortname_lc が定義されており shortname 内の大文字を小文字に変更する模様なので、shortname を小文字で書く必要はなかったようです。 Firefox / Nightly -> WebViewer, firefox -> webviewer に置き換わることを確認しました。

パッチを充てた結果として、手動で修正が必要と思われる箇所は下記となります。 いずれは、これらも自動で変換できるように nobranding_embedded_gecko.sh を修正した方が良さそうです。 ・ご指摘のあった Migration コード変更の箇所について、必要ならば削除 ・WebViewer とそのロゴが Mozilla Foundation のトレードマークという記述がある -> Renesas のトレードマークというわけでもありませんので、文言自体を削除すべきでしょうか。 ・"Mozilla" の記述が何か所かあるが、そのままにしておくべきか Renesas に変えるべきか、判断がつかないです。

ここまでの nobranding_embedded_gecko.sh と 実行した後の変更内容 nobrand2.diff を添付します。 まずは nobrand2.diff を充てた環境で RZ/G2E または Ebisu での立ち上げを検討します。

nobrand_WebViewer.zip

YoshihiroOota commented 5 years ago

nobrand2.diff を充てて Ebisu ボードで起動した写真を添付します。 貴法人にてPC上で動作させた内容と同じになったと思います。

DSC_0235

YoshihiroOota commented 5 years ago

@hATrayflood 素人質問で申し訳ありませんが、Webdino/Amethyst リポジトリに push いただいたブランディングの変更につきまして、Linux 上の Firefox に対するものだと思いますが、よろしければ使い方をご教示いただけないでしょうか。RZ/G2 環境でブランディング変更を行う際の参考にさせていただきたいと考えております。

現時点では、Ebisu ボード、RZ/G2E ボード向けとしましては、ブランディング変更の残件として下記を行う予定です。 ■ meta-browser-rzg-browser.tar.gz をベース ・ブランド書換のパッチ(0001-Rename-official-branding.patch)を nobrand2.diff に差替え ・各 .png/.svg ファイルを Webdino/Amethyst リポジトリに格納されている .png/.svg ファイルに差替え ・about-dialog.diff の内容を 0002-Add-temporary-work-nobranding-on-aboutDialog-w-o-bac.patch に取り込み ・各ファイル名を rzg-browser から webviewer に変更

上記を変更して試行し、不足分があったら trial & error で対応し、ひと段落した時点で webdino/meta-browser リポジトリの Amethyst ブランチに上げる予定です。

何かご助言、ご指摘等ありましたら、お手数ですがよろしくお願いいたします。

hATrayflood commented 5 years ago

@hATrayflood 素人質問で申し訳ありませんが、Webdino/Amethyst リポジトリに push いただいたブランディングの変更につきまして、Linux 上の Firefox に対するものだと思いますが、よろしければ使い方をご教示いただけないでしょうか。RZ/G2 環境でブランディング変更を行う際の参考にさせていただきたいと考えております。 現時点では、Ebisu ボード、RZ/G2E ボード向けとしましては、ブランディング変更の残件として下記を行う予定です。 ■ meta-browser-rzg-browser.tar.gz をベース ・ブランド書換のパッチ(0001-Rename-official-branding.patch)を nobrand2.diff に差替え ・各 .png/.svg ファイルを Webdino/Amethyst リポジトリに格納されている .png/.svg ファイルに差替え ・about-dialog.diff の内容を 0002-Add-temporary-work-nobranding-on-aboutDialog-w-o-bac.patch に取り込み ・各ファイル名を rzg-browser から webviewer に変更 上記を変更して試行し、不足分があったら trial & error で対応し、ひと段落した時点で webdino/meta-browser リポジトリの Amethyst ブランチに上げる予定です。 何かご助言、ご指摘等ありましたら、お手数ですがよろしくお願いいたします。

上記の方法であれば、nobrand2.diff とファイル名の変更は不要と考えております。 about-dialog.diff は firefox のビルドシステムで規定されているブランディング変更の領域を超える内容ですので、こちらはそのままお使いください。 @YoshihiroOota

YoshihiroOota commented 5 years ago

@hATrayflood ご教示、ありがとうございます。 ご教示いただいた手法で、取り急ぎ RZ/G2E ボード上で Firefox (WebViewer) が起動することを確認いたしました。 DSC_0236

ただ、少々力業で試しましたため、まだ Yocto ビルドへの組込みが中途半端ですのでもう少し弊社にて精査いたします。また、meta-browser-rzg-browser.tar.gz を参考に、起動時のコマンドも webviewer に出来ないか、合わせて確認してみます。

hATrayflood commented 5 years ago

user agentがMozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 WebViewer/60.6.0となってしまっていて、一部サイトでページが正しく表示されないようです。 Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.6.0としないとダメなような気がしますので対応します。 webviewer-useragent @dynamis

dynamis commented 5 years ago

そうですね。UserAgent はオリジナル Firefox そのままになるようにお願いします。

hATrayflood commented 5 years ago

https://github.com/webdino/amethyst/commit/f9df4300ecb5db7c8c3881d5d990a630a2457ed8 対応しました。再ビルド時はobjdirの削除が必要そうです。 @dynamis @YoshihiroOota

kou029w commented 5 years ago

"${HOME}/.mozilla/firefox/" に相当するディレクトリのパス名 "/home/root/.renesas electronics corporation/webviewer/" にも空白文字が含まれるようになったんですかね 機能に悪影響ないとは思うのでこのままでも良いのかもしれないですが、多くの他のファイルと同じようにパス名に空白文字が含まれないほうが望ましいように感じました

hATrayflood commented 5 years ago

気づいてはいましたが、これでも普通に動くもんですね。 空白入れないように短くするなら、単にこんな感じでしょうか。

amethyst/browser/amethyst/branding/configure.sh:7

MOZ_APP_VENDOR=renesas
dynamis commented 5 years ago

そうですね。MOZ_APP_VENDOR はシンプルな文字列が一般的でそんなに長くしなくて良い気がします。

如何でしょうか? > @YoshihiroOota

YoshihiroOota commented 5 years ago

取り急ぎ MOZ_APP_VENDOR=Renesas で問題ないと思います。

後ほど変更するのは大変でしょうか? (ここで確定させておく必要がありますでしょうか)

kou029w commented 5 years ago

~起動するコマンドも firefox ではなく webviewer ないしは renesas-webviewer などが良いんでしょうかね?~ Issueの説明文にあったので削除

hATrayflood commented 5 years ago

@YoshihiroOota @dynamis @kou029w https://github.com/webdino/amethyst/commit/d40a07a775bd7a17d4e7496b52249fe3862e81c0 対応しました。 再ビルド前にobjdirを削除してください。

hATrayflood commented 5 years ago

後ほど変更するのは大変でしょうか? (ここで確定させておく必要がありますでしょうか)

出荷後に変えてしまうと、育てたプロファイルが消えたと誤解されてしまう可能性がありますので、できれば早く対応したほうがよいです。 ということですので、早速対応しました。 @YoshihiroOota

YoshihiroOota commented 5 years ago

@kou029w はい、起動するコマンドも firefox ではなく webviewer にしたく、以前に rzg-browser で起動するように対応いただいた内容を確認中ですが、ちょっと進展できていない状況です。

dynamis commented 5 years ago

ブランド変更後のチェックリストです:

YoshihiroOota commented 5 years ago

ありがとうございます。とりあえず上記が変更できていれば、ブラウザとして世に出してもMozillaから怒られない感じでしょうか... 現状で残っていたところメモ

about:preferences 左側の更新ボタンの右に "Firefox Account"

about:support WebViewer Featuresに "Firefox Screenshots"、"firefox@getpocket.com"

dynamis commented 5 years ago

はい。ブランディング変更という意味では問題ありません。

お気づきのように Mozilla のサービス (Firefox Account, Firefox Screenshots) と連携する機能については逆に Mozilla のサービス名を勝手に変えてはならないので Firefox というブランドが出てくるのが正しい挙動です。

商用ブラウザとして正式リリースするつもりであればこれらのサービスの利用についての許諾の調整などがあり得ますが、ソースコードを公開したり、カスタムブラウザビルドとして提供するだけならサービスとの連携を削除する必要まではありません (サーバの利用に制限がある、API キーが必要なサービスとの連携は Mozilla 保有のキーを含めずにビルドしているので勝手に使いすぎるビルドになる心配もない)

YoshihiroOota commented 5 years ago

ご確認、ありがとうございます。

Firefox というブランド名は移植ビルドには使えない、と思いますが、どこまで削除すれば良いのか当方では判断付き難いので助かります。 Yocto のレシピ名/ファイル名に firefox が出てくるのはセーフでしょうか。 レシピ内の Firefox ソースのダウンロードする箇所は、さすがに変更できないと思いますが...

dynamis commented 5 years ago

権利関係の話としてはソースコードのディレクトリ名などでオリジナルプロダクトの名前を使うのは一般的に問題ないかと思います。商標権はそもそも製品などに対して固有の名称を付与する権利で、ディレクトリ名の権利ではありせんので、プロダクトの名称と誤解させるものでなければ構わないはずです。

また、firefox のコードをベースとして別のブランディングの製品をビルドする為のソースコードであるという事実に基づいているに過ぎないという点からも、ディレクトリ名として利用することに対して問題視されるとは思えません。

但し、レシピ名はプロダクト名を表すものですので、そこは確かに firefox ではなく webviewer とすべきかと思いますし、エンジニアの視点としては firefox のポーティングとそれ以外はある程度綺麗に分かれている方が望ましいと思われます。具体的にはこのようなイメージです:

meta-browser/recipes-browser/firefox/ <- この firefox は firefox ベースであることを表す meta-browser/recipes-browser/firefox/firefox_60.1.0esr.bb <- この firefox は firefox ビルドを作るという意味になる。ポーティング以上の変更をここに入れるべきではない meta-browser/recipes-browser/firefox/nightly_60.1.0esr.bb <- この nightly は firefox を nightly としてビルドするという意味

従って、webviewer のレシピは

meta-browser/recipes-browser/firefox/webviewer_60.Y.Zesr.bb

とすれば firefox ブラウザベースだが webviewer というカスタムビルド向けのレシピですと言うことになる。パッチファイルを入れるパスについては

meta-browser/recipes-browser/firefox/firefox/ <- この firefox は firefox ソースツリーに対するパッチを入れていることを表す

と考えれば一緒に入れてもいい気はしますが、移植用のパッチと別ビルド・プロダクトのパッチが不必要に混在するのは良くないと思うと

meta-browser/recipes-browser/firefox/webviewer/

配下に入れる方が良さそうです。先日 WIP なファイルを zip で頂いたときに適切にコメントできておらず申し訳ありませんが、上記踏まえたファイル名・パスで進めて頂けないでしょうか。

YoshihiroOota commented 5 years ago

コメント、ありがとうございます。 ディレクトリ名として firefox が登場する分には問題なさそうと理解いたしました。

ソースコードの整理という観点とは若干ズレますが、firefox 移植ビルドや nightly ビルドも local.conf 等の設定により可能なように残しておくべきでしょうか。 現在、神宮よりお渡しした環境 (meta-browser) ですと Web Viewer でしかビルドできない状態になっているかと思います。amethystブランチを使用する場合はそれで良いと思っていましたが、Web Viewerの提供方法や github での管理等、懸念点がございましたらお知らせいただけると助かります。

逆に firefox ビルドができる状態で提供して、お客様が間違って firefox 移植ビルドで製品を作って、Mozilla より指摘を受けて回収... は (海外もあるとはいえ) 考え過ぎかとは思いますが、貴法人で管理されている meta-browser のポリシーもあるかと思いますので、一度ご意見をお伺いしたく。

dynamis commented 5 years ago

もしかしたら webviewer ビルドだけでなくブラウザビルドの方もブランディング削除対応コードを入れる議論をされていますか?

ブラウザビルドについて

ブラウザビルドの方については upstream である OSSystems/meta-browser と方針を合わせておきたいので、upstream 側が firefox ビルドできるままにしている限りそれを消すことはない想定です。

あくまでも追加として、ブランディング削除ビルドを作れるものを webdino/meta-browser に入れるのであれば良いかと思います。

WebViewer ビルドについて

webviewer についてなら upstream 先のない webdino/amethyst および webdino/meta-browser のブランチがオリジナルとなるプロジェクト・コードのため独自判断が可能です。

私 (弊社) としては webviewer をビルドするためのコードを入れるブランチとして meta-browser の amethyst ブランチその開発のやり取りのために amethys リポジトリを作ってるという意図です。webviewer レシピだけとしても、firefox レシピを残してもどちらでもその要件は満たします。

amethyst ブランチでは webviewer のレシピだけにする方が整理されてて綺麗ですが、元なる firefox-XXesr ブランチで firefox/nightly などのレシピが変更されたコミットを automerge 出来なくなり履歴ツリーは少し散らかります。

開発中はともかくリリースなどしたら webviewer のレシピも amethyst ブランチだけでなく firefox-XXesr ブランチにマージしてしまっても構わないとも思っています (webviewer 向けのファイルはあくまで追加で firefox ビルド用のファイルに手を入れずに済むのであれば)。

お客様が間違ったら…という点については、レシピ名が明らかに違うし手順書も提供しているのに間違った場合はその人が責められるだけで御社・弊社に瑕疵はないし、そもそも webviewer ビルドにだけブランディング変更を入れるのであれば間違ったビルドを作ったことに (UI もバイナリ名も変わるので) 気付かないことはあり得ないだろうから気にする必要はないかと思います。

もしお客様に渡すときに webviewer のレシピだけにした状態で渡す形にすることを希望されるのであれば、マージせずあくまでもブランチにとどめることとして、amethyst ブランチも amethys-60 とか amethyst-68 とか元となる firefox ブランチ毎に命名・追加する方が良さそうです。

御社としてのご希望などありますでしょうか?

YoshihiroOota commented 5 years ago

コメントありがとうございます。 amethystブランチを更新し続けると思っていましたため、firefox-XXesrブランチにマージするところまで思いつきませんでした。一つ前の dynamis さんのコメントで提示された構成で整理できれば、firefox ビルド用のファイルに手を入れずに済むような気がします。 何をお客様に提供するか、弊社にて一度調整いたしますので、少々お待ちいただけないでしょうか。

dynamis commented 5 years ago

はい。御社として提供したいスタイルというのはご検討・ご連絡お待ちしております。

プロジェクトとしては Firefox とか WebViewer というより Gecko を移植しており、それを含んだビルドとして firefox や webviewer がビルドできるレシピを

meta-browser/recipes-browser/firefox/

にまとめて納めていますというスタイルであれば firefox-XXesr ブランチに firefox, nightly, webviewer レシピとパッチを入れる。

Firefox というアプリの移植をしていて、Web Viewer を別途作っている形であれば

meta-browser/recipes-browser/firefox/ 配下ではなく meta-browser/recipes-browser/webviewer/

配下にレシピを作って firefox 向けのパッチは ../firefox で参照する形になりそうです (chromium も並列であるので gecko-webview とかの方が適するのかもとか色々思うところがありますが、今のところそうはせず、firefox-XXesr ブランチに firefox, nightly, webviewer レシピとパッチを入れてしまって良いのではないかと思っています。

YoshihiroOota commented 5 years ago

すみません、こちら回答できておりませんでした。 ==== プロジェクトとしては Firefox とか WebViewer というより Gecko を移植しており、それを含んだビルドとして firefox や webviewer がビルドできるレシピを

meta-browser/recipes-browser/firefox/

にまとめて納めていますというスタイルであれば firefox-XXesr ブランチに firefox, nightly, webviewer レシピとパッチを入れる。 ====

こちらで進めております。

最終的には webviewer のレシピも amethyst ブランチだけでなく firefox-XXesr ブランチにマージしたいと思います。webviewer 向けのファイルはあくまで追加で firefox ビルド用のファイルに手を入れない方針で対応を進めております。

dynamis commented 5 years ago

承知しました。それでは webviewer のレシピをまずは amethyst ブランチに追加頂き、変更が落ち着いたら firefox-60esr にマージいただくのが良いかと思います。

あるいはもう開発も終盤でそんなに変更が続くことは無いと思えば、amethyst ブランチは忘れて firefox-60esr ブランチに直接投入していくというのもありかと思います。

いずれの場合も直接コミットいただいても良いですし,一旦プルリクでレビューを求めて頂いても結構です。宜しくお願いいたします。

dynamis commented 5 years ago

ロゴファイル差し換えの確認ですが、以下をご確認下さい:

一旦ちゃんとパッチが意図通り動いていることが確認でいたら、次回以降のビルドで確認するとき通常は最後の about:logo 表示くらいで良いかと思います。

YoshihiroOota commented 4 years ago

一応、弊社で確認できた箇所にチェックを入れてみました。 Gecko 60 向け Web Viewer は公開されておりますし、ブランディング変更の作業は完了できたと思いますが、Close 可能かご確認いただけないでしょうか。 Gecko 68 向けは、#43 辺りにまとめるか、別 issue を立てるのが分かりやすいと思います。

dynamis commented 4 years ago

遅くなりましたが、完了していると思いますのでクローズします (必要があれば個別に issue 立てましょう)