webOS OSE 研究筆記: webOS OSE 與 Qt5

栏目: C++ · 发布时间: 5年前

内容简介:在測試那又怎樣? 實際上

在測試 webOS OSE (webOS Open Source Edition) 的時候,我注意到了 webOS OSE 的核心組件是採用 Qt5 製作的,搭配的版本是 Qt 5.6.3

那又怎樣? 實際上 Qt 5.6.3 這個 LTS (Long Term Support) 的版本在今年 (2019) 的 3 月已經 停止支援 了,因此必須要來說說這件事對我們這群玩家以及想將 webOS OSE 用在自己商品上的人的影響。

你必須要知道的 LGPLv3

實際上, Qt 5.6 是最後一版維持 LGPLv2/LGPLv3 雙重授權的版本,而 Qt 5.7 以上都已經是走 LGPLv3 授權 (扣掉一些商業組件是 GPLv3 外)

LGPLv2 和 LGPLv3 到底有怎樣的差異? 簡單來說,LGPLv3 多增加一個 允許使用者自行更換 lib 的選項,也就是你必須告訴你的使用者如何換掉這個系統上的 Qt lib, 或是如何升級它。

這件事情對於 B2C (Business to Consumer) 的產品而言可能影響不大,畢竟我們都知道消費者裡面總是會出現一些

怪胎 ,整天想改東改西做些 Hack。但是如果你不希望讓消費者更改系統內的東西,那你也不能走 LGPLv3 的方案。

如果今天你是把 webOS OSE 放在機台之類的商業產品,也就是走 B2B (Business to Business) 的模式,這就影響很大了,畢竟我們都不希望合作夥伴因為亂改東西,導致機台故障因而導致必須賠償的事情發生。

由於筆者並非法律相關人士,因此建議看一下 Using Qt under LGPLv3 這份簡報,以及閱讀 LGPLv3 的授權條款,來理解一下事情的嚴重性。

所以到底怎麼了?

實際上,根據 LG: Building webOS with Qt 這場 keynote 的訊息, LG 自己販賣的 webOS TV 已經遷移到 Qt 5.9 上 (商業授權或是 LGPLv3 還不清楚,但推測應該為商業授權)

但如果我們的系統以 webOS OSE 為基底,並販售 Embedded Linux based 的產品的話,就要注意授權這一塊啦,到目前為止,webOS OSE 因為內建的是 Qt 5.6.3 ,因此只要你符合 LGPLv2 的授權,以及 Qt 的規範就好了 (詳見: Using Qt under LGPLv3 )

可是開源版本的 webOS OSE 一旦跟著遷移到 Qt 5.9 的話,就 真的要小心囉 ,畢竟如果那時候產品不是走 LGPLv3,也沒有買 Qt 的商業授權, 結果又被 Qt 背後的公司 The Qt Company 發現的話,可是要 走法律途徑 的。

webOS OSE 用了多少 Qt?

了解到了 Qt 5.6.3 是最後一版具有 LGPLv2/LGPLv3 雙重授權的版本後,我們來看看如果要替換掉 webOS OSE 內的 Qt-based 的程式,有哪些要改掉:

程式名稱 用途 重要性 抽出 Qt 難易度
luna-surfacemanager QtWayland Compositor 難,要重寫
qtwayland-webos webOS 和 QtWayland 相關的擴充組件
qt-features-webos 一些和 Qt 連動的設定檔
qml-webos-framework QML 相關組件
qml-webos-components QML 相關組件
qml-webos-bridge QML 相關組件
maliit-framework-webos 虛擬鍵盤
wam 控制 Web App 用的 Web Application Manager
ime-manager 負責處理 input event,和 maliit-framework 連動
luna-syservice 處理和設定、時間相關的 Luna bus 服務

由於 webOS OSE 的設計哲學是,一些速度要求比較快的部份採用 Qt 來實做,因此如果打算將 Qt 拔除的話,至少要有辦法替代掉 luna-surfacemanagerwam 這兩個項目,一個是用於 Wayland 的 Compositor (相當於 X11 的 Xserver + Window Manager),另外一個則是啟動 WebApp 時。用來控制程式的生命週期 (lifecycle) 的控制程式。

幸好, webOS OSE 使用的是自己以 Chromium 為基底移植的 Wayland 版本的 Chromium, 而非 LGPLv3QtWebEngine ,因此假設你想要以 webOS OSE 為基礎,設計自己的產品的話,還是有辦法避免掉 Qt 的授權問題的。

結語

由於 Qt 5.6.3 已經停止支援了 ,也許 webOS OSE 某一天就會說要升級到 Qt 5.7 以上的版本才能使用,到時候以 webOS OSE 為基底的產品,如果沒有注意到 LGPLv3 授權的要求的話,可能要預先準備一筆敗訴時使用的賠償費用才行。

從webOS OSE 用了多少 Qt?這邊的觀察結果來看,也許我們用別的 toolkit, 比如 gtk 去換掉這些 Qt 相關的組件,那我們還是有辦法避免掉 webOS OSE 升級 Qt libs 所帶來的影響的。

當然,因為主導者是 LG ,因此這部份還是要後續觀察,或是 購買 Qt 商業授權 你就什麼都不用煩惱了~


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Beginning PHP and MySQL 5

Beginning PHP and MySQL 5

W. Jason Gilmore / Apress / 2006-01-23 / USD 44.99

Beginning PHP and MySQL 5: From Novice to Professional, Second Edition offers comprehensive information about two of the most prominent open source technologies on the planet: the PHP scripting langua......一起来看看 《Beginning PHP and MySQL 5》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具