Open Source Ideas
The development of deepin now is fully based on the works of the upstream communities. Despite our original open source projects with more than 1 million lines codes, we know very well about the open source ideas that "What comes from the open source should be used for open source", so that we could give all these codes and features back to the upstream communities and better promote the open source all over the world.
Contributions to Upstream
Here are the contributed code patch and brief introductions to the upstream communities:
Wine
Deepin Wine Team will develop many functions that can complete Wine's API every day to make Windows Applications run better on Linux. Like QQ, Xunlei and RTX, these applications used Deepin contributed patches, and here are the patch list:
wininet/tests: Check null pointer in InternetGetSecurityInfoByURLW
https://source.winehq.org/git/wine.git/commit/3f06a09604f8c2364dfbf6e6987d991f140544bc
wininet: Don't release connection too early.
https://source.winehq.org/git/wine.git/commit/6d6dd78e5dad164d1b313599f9afa5f65481d29d
winex11: Avoid deadlock when setting cursor.
https://source.winehq.org/git/wine.git/commit/48fb9d6a03a16e389b3d214d68356c52ad3310b9
user32: Make functions use display dc thread-safe
https://source.winehq.org/git/wine.git/commit/daa832f4bf265e459e17d487453f3cc112f6e567
kernel32/tests: Add tests for MultiByteToWideChar in DBCS codepage.
https://source.winehq.org/git/wine.git/commit/e776421232996729a0e350c31d56f696bd47e429
https://www.winehq.org/pipermail/wine-patches/2015-November/144839.html [PATCH] wininet/test: Add tests on host value for InternetConnectW (try 3)
https://www.winehq.org/pipermail/wine-patches/2015-November/144896.html
Subject: hidclass.sys: Properly quit hid_device_thread when both completion event and halt event are signaled (try 4)
https://www.winehq.org/pipermail/wine-patches/2016-January/146187.html
libwine: Make mbstowcs_dbcs return real converted chars when srclen is 1, len is 0 and *scr is partial char.
https://www.winehq.org/pipermail/wine-patches/2016-February/146691.html
hidclass.sys: Initialize ext->irp_queue immediately after HID_CreateDevice
https://www.winehq.org/pipermail/wine-patches/2015-December/145204.html
winedbg: Add disassembly_flavor option to use the intel disassembly style like gdb’s disassembly-flavor option. (try 2)
https://www.winehq.org/pipermail/wine-patches/2016-January/145840.html
winedbg: Add disassembly_flavor option to use the intel disassembly style like gdb’s disassembly-flavor option. (try 3)
https://www.winehq.org/pipermail/wine-patches/2016-January/145929.html
user32:-send-WM_PRINTCLIENT-when-PW_CLIENTONLY-is-set
https://www.winehq.org/pipermail/wine-patches/2015-January/136611.html
https://www.winehq.org/pipermail/wine-patches/2015-January/136679.html
kernel32: Add test MultiByteToWideChar for code page is 936. (try 3)
https://www.winehq.org/pipermail/wine-patches/2016-February/146805.html
winex11.drv: Fix handle_wm_protools take focus error cause tooltip window and popup menu not visible
https://www.winehq.org/pipermail/wine-patches/2015-January/136704.html
hidclass.sys: Properly quit hid_device_thread when both completion event and halt event are signaled (try 2)
https://www.winehq.org/pipermail/wine-patches/2015-December/145518.html
hidclass.sys: Properly quit hid_device_thread when both completion event and halt event are signaled.
https://www.winehq.org/pipermail/wine-patches/2015-December/145212.html
hidclass.sys: Properly print 80 bytes in first line when tracing ParseDescriptor.
https://www.winehq.org/pipermail/wine-patches/2015-December/145205.html
https://www.winehq.org/pipermail/wine-patches/2014-September/134511.html
winedbg: Add a debug button on crash dialog, get rid of shift + right click magic (try3)
https://www.winehq.org/pipermail/wine-patches/2016-January/145930.html
ole32: make CoWaitForMultipleHandles continue dispatch message to OLE apartment window even received WM_QUIT message
https://www.winehq.org/pipermail/wine-patches/2015-May/139354.html
quartz: waveparser support wav file generated by ffmpeg (try3)
https://www.winehq.org/pipermail/wine-patches/2015-August/141385.html
0001-winedbg-Add-a-debug-button-on-crash-dialog-get-rid-of-
https://www.winehq.org/pipermail/wine-patches/2015-December/145508.html
quartz: waveparser support wav file generated by ffmpeg (try 4)
https://www.winehq.org/pipermail/wine-patches/2015-August/141542.html
ieframe:add app: protocol support to make mshtml trigger BeforeNavigate2 event when handle app: hyperlink
https://www.winehq.org/pipermail/wine-patches/2015-January/136536.html
kernel32: Add test MultiByteToWideChar for code page is 936. (try 3)
https://www.winehq.org/pipermail/wine-patches/2016-February/146806.html
quartz: waveparser support wav file generated by ffmpeg
https://www.winehq.org/pipermail/wine-patches/2015-August/141330.html
comctl32: SysDateTimePick32 control add Alt+down hot key likewindows (try 3)
https://www.winehq.org/pipermail/wine-patches/2015-March/137452.html
https://www.winehq.org/pipermail/wine-patches/2014-November/135317.html
quartz: waveparser support wav file generated by ffmpeg (try 2)
https://www.winehq.org/pipermail/wine-patches/2015-August/141384.html
Metacity&Mutter
Deepin Window Manager is an advanced window manager that developed based on metacity and mutter. deepin-metacity based on metacity and deepin-wm is based on mutter. During the development process, we've found a lot of bugs and features that need to improve, here are the details:
Emacs
The author of w3m-org package in Emacs(http://repo.or.cz/w/org-mode.git?a=blob_plain;f=lisp/org-w3m.el;hb=HEAD), Andy Stewart, is one of the developers in Deepin Team, and he has written a lot of Emacs packages and maintained hundreds of patches for Emacs packages.
Emacs Packages: https://www.emacswiki.org/emacs/AndyStewart
Emacs Contributions and patches: https://www.google.com.hk/search?q=AndyStewart+site%3Aemacswiki.org&oq=AndyStewart+site%3Aemacswiki.org&aqs=chrome..69i57.8162j0j4&sourceid=chrome&ie=UTF-8
PyGTK
When using Python + Gtk+ to develop graphical applications, Deepin Team has found that pangocairo will not destruct the layout object while rendering fonts. This could cause a very serious memory leak issue, and Deepin Team has send a patch to pygtk developer to solve the problem. Here is the patch:
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 *
This patch has been collected by Archlinux community: https://lists.archlinux.org/pipermail/arch-commits/2015-September/291622.html
Miraclecast
https://github.com/albfan/miraclecast/tree/wip/source-impl
This patch is mainly based on the Miraclecast project and implemented nearly real-time local audio and video sending-end function, to enable two-way screen projection between two opened devices.
PulseAudio
https://patchwork.freedesktop.org/patch/189110/
This patch is mainly based on the PulseAudio project and support XDG_DATA_DIRS when find desktop files.
Qt
https://codereview.qt-project.org/#/c/217601/
Fix QML Rectangle blurry
When QQuickWindow::effectiveDevicePixelRatio's value is not an integer
QML Rectangle is blurry if launched with —device=software
Welcome to Join Us
We hoped that more and more developers that love open source can join the action of "Feedback Open Source" to let China developers gain impacts on global open source communities and promote the open source movement continuously.