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

[PATCH] add test on host value of InternetConnectW
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

[PATCH] wbemprox: implement Win32_DiskDrive.PNPDeviceID
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

[PATCH] svchost: Add LOAD_WITH_ALTERED_SEARCH_PATH flags to LoadLibraryEx in AddServiceElem
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

[PATCH] iphlpapi: call WSASetLastError in NotifyAddrChange/NotifyRouteChange
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

qcap: Add O_CLOEXEC flag to prevent child process from inheriting handles.

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.