Deepin团队从创建到现在已经3年多了,我们一直在“造轮子”来改进Linux桌面系统的用户体验,比如大家熟知的深度音乐、深度软件中心、深度桌面 环境等。对于中国用户来说,QQ是大家日常工作和生活最为常见的聊天工具,而多年来Linux系统无法运行QQ,这一直是大家切换到Linux系统的最大 的障碍之一。
作者:Manatee LazyCat,deepin项目开发负责人。
今天就由我给大家讲讲deepin运行最新的QQ6.7背后的研发故事吧。
首先,我代表deepin团队感谢CodeWeavers的全球工程师,特别是CodeWeavers的中国开发者洪谦同学,他亲自前往武汉和deepin工程师一起战斗,正是有了他们的努力,大家今天能用上稳定的QQ6.7 。
运行QQ 6.7,不应该是最正常的事情吗?
对于大多数Windows用户来说,能够使用QQ不就是最为常见是事情吗?但是因为Linux和Windows是完全不同的系统,所以要让QQ运行在Linux系统上,绝不是双击一下QQ安装文件那么简单的,如果要让一款Windows软件能够在Linux系统上完美运行起来,不但需要你精通Windows/Linux编程,还必须要你拥有极大的毅力,有时候甚至需要你如柯南一般,能够在千丝万缕的线索中定位问题,从而解决该问题。
较为常见的是,在我们在调试QQ的时候,发现QQ登陆窗口无法显示完全,我们的工程师猜测是图片alpha绘制有问题,但是我们用了将近一个星期的时间来分析了几十G的日志文件后,才发现是窗口位置换算矩阵的问题。而更多的时候,我们在分析了海量日志文件后,发现此路不通,所有调查和修复工作又要从头开始。
参与Wine/CrossOver项目开发的另一个障碍是语言和字体问题,为了解决QQ在Linux系统中字体显示成方块和’火星文‘的问题,一方面需要我们大量编写的i18n模块补丁,同时还需要向Wine开发者解释这些补丁都解决了哪些中文问题,而这些Wine开发者大多是外国人,对于中文最直观的认识就是各种方块象形符号,有时候一个补丁甚至要反复修改十几次才能被合并至Wine的上游代码仓库。
所有代码全部开放并贡献给开源社区
到目前为止,我们除针对QQ的补丁外,还有针对阿里旺旺和QQ旋风等应用的补丁,总共大约60个补丁,主要分布在 richedit、mshtml、wininet、explorer、msvcr100、usp10、user32、jscript和ntoskrnl 这几个模块。现在,我们开发的所有的补丁都已经合并至Wine的上游代码仓库之中。
我们坚信只有脚踏实地编写代码,合并至上游社区,才能让所有Linux用户(不止是deepin用户)受益,从而从根本上解决Linux桌面软件的生态问题。
deepin CrossOver和Wine的区别
刚才我们提到双方工程师的所有源代码都回馈到Wine上游社区,那么 deepin CrossOver 和Wine到底有什么区别呢?
CrossOver 是CodeWeavers 公司基于Wine开发的商业版本,在集成Wine最新补丁的同时,还提供商业级的稳定运行保障,而Wine虽然也拥有最新的补丁,但同时还有很多全球开发者的实验性开发补丁,从而导致Wine不能保证所有软件都能稳定运行。
对于deepin用户来说,使用deepin CrossOver完全不用折腾就能体验最新的Windows软件,并且所有deepin用户均可免费使用CrossOver,因为我们已经帮所有deepin用户付过费了。
开源不仅仅是享受成果,更应该需要大家的支持
CodeWeavers是一个非常伟大的公司,他们数以十年的为Linux能够运行Windows应用做出巨大的贡献,因此我们呼吁大家:开源不仅仅是享受成果,更应该需要大家的支持!
如果您想在Linux使用CrossOver运行最新的Windows软件,但又不想使用deepin系统,请购买CrossOver 的商业版来支持他们。
我们也想过帮所有Linux用户付费,但是我们没有这么多的钱,没法任性,还请大家谅解。
QQ6.7只是开始,变革才刚刚开始
QQ6.7只是deepin和CodeWeavers双方工程师完成的第一个应用,我们会继续努力移植更多好用的Windows应用到Linux系统上让大家使用。
我们希望把所有折腾的事情都交给工程师,用户只用双击一下享受生活即可。
deepin的理念很简单:将不折腾进行到底!