开源理念
深度操作系统的发展是站在上游社区的基础之上才能走到今天,除了我们自己开发了数百万行代码的原创开源项目外,我们深知只有秉承 “取之于开源,回馈予开源” 的开源理念,才能将我们自己的代码和功能改进回馈予上游开源社区,才能更好的推动全世界的开源运动向前不断发展。
上游贡献
下面是我们对上游社区的代码贡献补丁以及简要说明:
Wine:
深度科技Wine团队每天都会开发很多功能来完善Wine的API实现完整性,以更好的支持Windows应用在Linux上运行,包括QQ、迅雷、RTX等应用的支持都有deepin团队贡献的补丁,具体的贡献补丁如下:
Metacity&Mutter:
深度窗口管理器是基于metacity和mutter开发的高级窗口窗口管理器,其中deepin-metacity是基于metacity之上开发的,deepin-wm是基于mutter之上开发的。在开发的过程中,发现了很多上游社区的bug和功能需要改进的地方,具体的补丁请见:
Emacs:
深度开发者之一王勇除了是Emacs中w3m-org 模块 (http://repo.or.cz/w/org-mode.git?a=blob_plain;f=lisp/org-w3m.el;hb=HEAD) 的作者外,还编写了众多的Emacs插件和维护了上百个Emacs插件的补丁。
Emacs插件:https://www.emacswiki.org/emacs/AndyStewart。
PyGTK:
在用Python + Gtk+开发图形应用的时候,深度科技团队发现pangocairo库在自绘字体的时候,pangocairo创建的layout对象不会销毁,最后会导致自绘界面的有严重内存泄露的情况,深度科技团队已经发送修复补丁至pygtk 上游修复此问题,下面是具体的补丁情况:
Index: pygtk-2.24.0/pangocairo.override
===================================================================
— pygtk-2.24.0.orig/pangocairo.override 2012-04-14 01:40:59.568703232 +0800
+++ pygtk-2.24.0/pangocairo.override 2012-04-14 01:41:05.792703324 +0800
@@ -119,10 +119,15 @@
_wrap_pango_cairo_create_layout(PyGObject *self)
{
PangoLayout *ret;
+ PyObject *py_ret;ret = pango_cairo_create_layout(PycairoContext_GET(self));
/* pygobject_new handles NULL checking */
– return pygobject_new((GObject *)ret);
+ py_ret = pygobject_new((GObject *) ret);
+ if (ret) {
+ g_object_unref(ret);
+ }
+ return py_ret;
}
static PyObject *
该补丁已经被ArchLinux社区收录:https://lists.archlinux.org/pipermail/arch-commits/2015-September/291622.html。
欢迎加入
希望更多的热爱开源的开发者加入“回馈开源”的行动,推动中国开发者在国际开源社区的影响力,让中国的开源运动能够源远流长的发展下去。