webOS OSE 研究筆記: webOS OSE 與 Qt5

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

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

在測試 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 商業授權 你就什麼都不用煩惱了~


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

查看所有标签

猜你喜欢:

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

代码整洁之道

代码整洁之道

[美]Robert C. Martin / 韩磊 / 人民邮电出版社 / 2010-1-1 / 59.00元

软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。 本书提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵......一起来看看 《代码整洁之道》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

MD5 加密
MD5 加密

MD5 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换