{"id":21676,"date":"2017-02-04T15:42:35","date_gmt":"2017-02-04T07:42:35","guid":{"rendered":"https:\/\/www.deepin.org\/?page_id=21676"},"modified":"2018-04-02T15:42:34","modified_gmt":"2018-04-02T07:42:34","slug":"community-contributions","status":"publish","type":"page","link":"https:\/\/www.deepin.org\/en\/developer-community\/community-contributions\/","title":{"rendered":"Community Contributions"},"content":{"rendered":"<h1>Open Source Ideas<\/h1>\n<p>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.<\/p>\n<h1>Contributions to Upstream<\/h1>\n<p>Here are the contributed code patch and brief introductions to the upstream \u00a0communities:<\/p>\n<h2>Wine<\/h2>\n<p>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:<\/p>\n<p>wininet\/tests: Check null pointer in InternetGetSecurityInfoByURLW<br \/>\n<a href=\"https:\/\/source.winehq.org\/git\/wine.git\/commit\/3f06a09604f8c2364dfbf6e6987d991f140544bc\">https:\/\/source.winehq.org\/git\/wine.git\/commit\/3f06a09604f8c2364dfbf6e6987d991f140544bc<\/a><\/p>\n<p>wininet: Don't release connection too early.<br \/>\n<a href=\"https:\/\/source.winehq.org\/git\/wine.git\/commit\/6d6dd78e5dad164d1b313599f9afa5f65481d29d\">https:\/\/source.winehq.org\/git\/wine.git\/commit\/6d6dd78e5dad164d1b313599f9afa5f65481d29d<\/a><\/p>\n<p>winex11: Avoid deadlock when setting cursor.<br \/>\n<a href=\"https:\/\/source.winehq.org\/git\/wine.git\/commit\/48fb9d6a03a16e389b3d214d68356c52ad3310b9\">https:\/\/source.winehq.org\/git\/wine.git\/commit\/48fb9d6a03a16e389b3d214d68356c52ad3310b9<\/a><\/p>\n<p>user32: Make functions use display dc thread-safe<br \/>\n<a href=\"https:\/\/source.winehq.org\/git\/wine.git\/commit\/daa832f4bf265e459e17d487453f3cc112f6e567\">https:\/\/source.winehq.org\/git\/wine.git\/commit\/daa832f4bf265e459e17d487453f3cc112f6e567<\/a><\/p>\n<p>kernel32\/tests: Add tests for MultiByteToWideChar in DBCS codepage.<br \/>\n<a href=\"https:\/\/source.winehq.org\/git\/wine.git\/commit\/e776421232996729a0e350c31d56f696bd47e429\">https:\/\/source.winehq.org\/git\/wine.git\/commit\/e776421232996729a0e350c31d56f696bd47e429<\/a><\/p>\n[PATCH] add test on host value of InternetConnectW<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-November\/144839.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-November\/144839.html<\/a><\/p>\n[PATCH] wininet\/test: Add tests on host value for InternetConnectW (try 3)<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-November\/144896.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-November\/144896.html<\/a><\/p>\n<p>Subject: hidclass.sys: Properly quit hid_device_thread when both completion event and halt event are signaled (try 4)<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2016-January\/146187.html\" target=\"_blank\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2016-January\/146187.html<\/a><\/p>\n<p>libwine: Make mbstowcs_dbcs return real converted chars when srclen is 1, len is 0 and *scr is partial char.<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2016-February\/146691.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2016-February\/146691.html<\/a><\/p>\n<p>hidclass.sys: Initialize ext-&gt;irp_queue immediately after HID_CreateDevice<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-December\/145204.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-December\/145204.html<\/a><\/p>\n<p>winedbg: Add disassembly_flavor option to use the intel disassembly style like gdb\u2019s disassembly-flavor option. (try 2)<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2016-January\/145840.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2016-January\/145840.html<\/a><\/p>\n<p>winedbg: Add disassembly_flavor option to use the intel disassembly style like gdb\u2019s disassembly-flavor option. (try \uff13)<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2016-January\/145929.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2016-January\/145929.html<\/a><\/p>\n<p>user32:-send-WM_PRINTCLIENT-when-PW_CLIENTONLY-is-set<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-January\/136611.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-January\/136611.html<\/a><\/p>\n[PATCH] wbemprox: implement Win32_DiskDrive.PNPDeviceID<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-January\/136679.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-January\/136679.html<\/a><\/p>\n<p>kernel32: Add test MultiByteToWideChar for code page is 936. (try 3)<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2016-February\/146805.html\" target=\"_blank\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2016-February\/146805.html<\/a><\/p>\n<p>winex11.drv: Fix handle_wm_protools take focus error cause tooltip window and popup menu not visible<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-January\/136704.html\" target=\"_blank\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-January\/136704.html<\/a><\/p>\n<p>hidclass.sys: Properly quit hid_device_thread when both completion event and halt event are signaled (try 2)<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-December\/145518.html\" target=\"_blank\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-December\/145518.html<\/a><\/p>\n<p>hidclass.sys: Properly quit hid_device_thread when both completion event and halt event are signaled.<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-December\/145212.html\" target=\"_blank\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-December\/145212.html<\/a><\/p>\n<p>hidclass.sys: Properly print 80 bytes in first line when tracing ParseDescriptor.<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-December\/145205.html\" target=\"_blank\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-December\/145205.html<\/a><\/p>\n[PATCH] svchost: Add LOAD_WITH_ALTERED_SEARCH_PATH flags to LoadLibraryEx in AddServiceElem<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2014-September\/134511.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2014-September\/134511.html<\/a><\/p>\n<p>winedbg: Add a debug button on crash dialog, get rid of shift + right click magic (try3)<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2016-January\/145930.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2016-January\/145930.html<\/a><\/p>\n<p>ole32: make CoWaitForMultipleHandles continue dispatch message to OLE apartment window even received WM_QUIT message<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-May\/139354.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-May\/139354.html<\/a><\/p>\n<p>quartz: waveparser support wav file generated by ffmpeg (try3)<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-August\/141385.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-August\/141385.html<\/a><\/p>\n<p>0001-winedbg-Add-a-debug-button-on-crash-dialog-get-rid-of-<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-December\/145508.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-December\/145508.html<\/a><\/p>\n<p>quartz: waveparser support wav file generated by ffmpeg (try 4)<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-August\/141542.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-August\/141542.html<\/a><\/p>\n<p>ieframe:add app: protocol support to make mshtml trigger BeforeNavigate2 event when handle app: hyperlink<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-January\/136536.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-January\/136536.html<\/a><\/p>\n<p>kernel32: Add test MultiByteToWideChar for code page is 936. (try 3)<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2016-February\/146806.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2016-February\/146806.html<\/a><\/p>\n<p>quartz: waveparser support wav file generated by ffmpeg<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-August\/141330.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-August\/141330.html<\/a><\/p>\n<p>comctl32: SysDateTimePick32 control add Alt+down hot key likewindows (try \uff13)<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-March\/137452.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-March\/137452.html<\/a><\/p>\n[PATCH] iphlpapi: call WSASetLastError in NotifyAddrChange\/NotifyRouteChange<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2014-November\/135317.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2014-November\/135317.html<\/a><\/p>\n<p>quartz: waveparser support wav file generated by ffmpeg (try 2)<br \/>\n<a href=\"https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-August\/141384.html\" rel=\"nofollow\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-August\/141384.html<\/a><\/p>\n<div class=\"gutter-author-145626 locate lineguid-LCCLPBJlBnnu6wJI\" data-author-name=\"\u738b\u52c7\">qcap: Add O_CLOEXEC flag to prevent child process from inheriting handles.<\/div>\n<div class=\"gutter-author-145626 locate lineguid-LCCLPBJlBnnu6wJI\" data-author-name=\"\u738b\u52c7\"><\/div>\n<div id=\"magicdomid1898\" class=\"gutter-author-145626 locate lineguid-LCCLPBJlBnnu6wJI\" data-author-name=\"\u738b\u52c7\"><span class=\"author-145626 url\"><a href=\"https:\/\/source.winehq.org\/git\/wine.git\/commit\/dfd22fb294c6ce9c3daba311f96ca3b4933d265c\" target=\"_blank\">https:\/\/www.winehq.org\/pipermail\/wine-patches\/2015-August\/141384.html<\/a><\/span><\/div>\n<div class=\"gutter-author-145626 locate lineguid-LCCLPBJlBnnu6wJI\" data-author-name=\"\u738b\u52c7\"><\/div>\n<h1>Metacity&amp;Mutter<\/h1>\n<p>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:<\/p>\n<div class=\"su-custom-gallery su-custom-gallery-title-hover su-lightbox-gallery\"><div class=\"su-custom-gallery-slide\"><a href=\"https:\/\/www.deepin.org\/wp-content\/uploads\/2017\/02\/NVYtFQVFLdQ5q1LP.png\" title=\"nvytfqvfldq5q1lp\"><img src=\"https:\/\/www.deepin.org\/wp-content\/uploads\/2017\/02\/NVYtFQVFLdQ5q1LP-255x150.png\" alt=\"nvytfqvfldq5q1lp\" width=\"255\" height=\"0\" \/><span class=\"su-custom-gallery-title\">nvytfqvfldq5q1lp<\/span><\/a><\/div><div class=\"su-custom-gallery-slide\"><a href=\"https:\/\/www.deepin.org\/wp-content\/uploads\/2017\/02\/8UjY41fxnhQFkZHo.png\" title=\"8ujy41fxnhqfkzho\"><img src=\"https:\/\/www.deepin.org\/wp-content\/uploads\/2017\/02\/8UjY41fxnhQFkZHo-255x150.png\" alt=\"8ujy41fxnhqfkzho\" width=\"255\" height=\"0\" \/><span class=\"su-custom-gallery-title\">8ujy41fxnhqfkzho<\/span><\/a><\/div><div class=\"su-custom-gallery-slide\"><a href=\"https:\/\/www.deepin.org\/wp-content\/uploads\/2017\/02\/eKx8mfVVBSsatCVg.png\" title=\"ekx8mfvvbssatcvg\"><img src=\"https:\/\/www.deepin.org\/wp-content\/uploads\/2017\/02\/eKx8mfVVBSsatCVg-255x150.png\" alt=\"ekx8mfvvbssatcvg\" width=\"255\" height=\"0\" \/><span class=\"su-custom-gallery-title\">ekx8mfvvbssatcvg<\/span><\/a><\/div><div class=\"su-clear\"><\/div><\/div>\n<p>&nbsp;<\/p>\n<h1>Emacs<\/h1>\n<p>The author of w3m-org package in Emacs(<a href=\"http:\/\/repo.or.cz\/w\/org-mode.git?a=blob_plain\" rel=\"nofollow\">http:\/\/repo.or.cz\/w\/org-mode.git?a=blob_plain<\/a>;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.<\/p>\n<p>Emacs Packages: <a href=\"https:\/\/www.emacswiki.org\/emacs\/AndyStewart\" rel=\"nofollow\">https:\/\/www.emacswiki.org\/emacs\/AndyStewart<\/a><\/p>\n<p>Emacs Contributions and patches: <a href=\"https:\/\/www.google.com.hk\/search?q=AndyStewart+site%3Aemacswiki.org&amp;oq=AndyStewart+site%3Aemacswiki.org&amp;aqs=chrome..69i57.8162j0j4&amp;sourceid=chrome&amp;ie=UTF-8\" rel=\"nofollow\">https:\/\/www.google.com.hk\/search?q=AndyStewart+site%3Aemacswiki.org&amp;oq=AndyStewart+site%3Aemacswiki.org&amp;aqs=chrome..69i57.8162j0j4&amp;sourceid=chrome&amp;ie=UTF-8<\/a><\/p>\n<p>&nbsp;<\/p>\n<h1>PyGTK<\/h1>\n<p>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:<\/p>\n<p>Index: pygtk-2.24.0\/pangocairo.override<\/p>\n<p>===================================================================<\/p>\n<p>\u2014 pygtk-2.24.0.orig\/pangocairo.override \u00a0 \u00a0 \u00a0 \u00a02012-04-14 01:40:59.568703232 +0800<\/p>\n<p>+++ pygtk-2.24.0\/pangocairo.override \u00a0 \u00a0 \u00a0 \u00a02012-04-14 01:41:05.792703324 +0800<\/p>\n<p>@@ -119,10 +119,15 @@<\/p>\n<p>_wrap_pango_cairo_create_layout(PyGObject *self)<\/p>\n<p>{<\/p>\n<p>PangoLayout *ret;<\/p>\n<p>+ \u00a0 \u00a0PyObject *py_ret;ret = pango_cairo_create_layout(PycairoContext_GET(self));<\/p>\n<p>\/* pygobject_new handles NULL checking *\/<\/p>\n<p>\u2013 \u00a0 \u00a0return pygobject_new((GObject *)ret);<\/p>\n<p>+ \u00a0 \u00a0py_ret = pygobject_new((GObject *) ret);<\/p>\n<p>+ \u00a0 \u00a0if (ret) {<\/p>\n<p>+ \u00a0 \u00a0 \u00a0 \u00a0g_object_unref(ret);<\/p>\n<p>+ \u00a0 \u00a0}<\/p>\n<p>+ \u00a0 \u00a0return py_ret;<\/p>\n<p>}<\/p>\n<p>static PyObject *<\/p>\n<p>This patch has been collected by Archlinux community: <a href=\"https:\/\/lists.archlinux.org\/pipermail\/arch-commits\/2015-September\/291622.html\" target=\"_blank\" rel=\"nofollow\">https:\/\/lists.archlinux.org\/pipermail\/arch-commits\/2015-September\/291622.html<\/a><\/p>\n<p>&nbsp;<\/p>\n<h1>Miraclecast<\/h1>\n<p><a href=\"https:\/\/github.com\/albfan\/miraclecast\/tree\/wip\/source-impl\" target=\"_blank\">https:\/\/github.com\/albfan\/miraclecast\/tree\/wip\/source-impl<\/a><\/p>\n<p>This patch is mainly based on the\u00a0Miraclecast project and implemented nearly real-time local audio and video sending-end function, to enable two-way screen projection between two opened devices.<\/p>\n<p>&nbsp;<\/p>\n<h1>PulseAudio<\/h1>\n<p>https:\/\/patchwork.freedesktop.org\/patch\/189110\/<\/p>\n<p>This patch is mainly based on the\u00a0PulseAudio project and\u00a0support XDG_DATA_DIRS when find desktop files.<\/p>\n<p>&nbsp;<\/p>\n<h1>Qt<\/h1>\n<p>https:\/\/codereview.qt-project.org\/#\/c\/217601\/<\/p>\n<p>Fix QML Rectangle blurry<\/p>\n<p>When QQuickWindow::effectiveDevicePixelRatio's value is not an integer<br \/>\nQML Rectangle is blurry if launched with \u2014device=software<\/p>\n<p>&nbsp;<\/p>\n<h1>Welcome to Join Us<\/h1>\n<p>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.","protected":false},"excerpt":{"rendered":"<p>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 \u00a0communities: Wine Deepin Wine Team will develop ...<a href=https:\/\/www.deepin.org\/en\/developer-community\/community-contributions\/>Read more<\/a><\/p>\n","protected":false},"author":108,"featured_media":0,"parent":124,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.deepin.org\/en\/wp-json\/wp\/v2\/pages\/21676"}],"collection":[{"href":"https:\/\/www.deepin.org\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.deepin.org\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.deepin.org\/en\/wp-json\/wp\/v2\/users\/108"}],"replies":[{"embeddable":true,"href":"https:\/\/www.deepin.org\/en\/wp-json\/wp\/v2\/comments?post=21676"}],"version-history":[{"count":77,"href":"https:\/\/www.deepin.org\/en\/wp-json\/wp\/v2\/pages\/21676\/revisions"}],"predecessor-version":[{"id":27266,"href":"https:\/\/www.deepin.org\/en\/wp-json\/wp\/v2\/pages\/21676\/revisions\/27266"}],"up":[{"embeddable":true,"href":"https:\/\/www.deepin.org\/en\/wp-json\/wp\/v2\/pages\/124"}],"wp:attachment":[{"href":"https:\/\/www.deepin.org\/en\/wp-json\/wp\/v2\/media?parent=21676"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}