https://reactos.org/wiki/api.php?action=feedcontributions&user=Colin+Finck&feedformat=atomReactOS Wiki - User contributions [en]2024-03-29T15:11:52ZUser contributionsMediaWiki 1.31.7https://reactos.org/wiki/index.php?title=Google_Summer_of_Code&diff=52036Google Summer of Code2021-02-20T08:06:44Z<p>Colin Finck: </p>
<hr />
<div>*;'''[[Google Summer of Code 2021]]'''<br />
----<br />
*'''[[Google Summer of Code 2020]]''' (accepted)<br />
*'''[[Google Summer of Code 2019]]''' (accepted)<br />
*'''[[Google Summer of Code 2018]]''' (accepted)<br />
*'''[[Google Summer of Code 2017]]''' (accepted)<br />
*'''[[Google Summer of Code 2016]]''' (accepted)<br />
*[[Google Summer of Code 2015]]<br />
*[[Google Summer of Code 2014]]<br />
*[[Google Summer of Code 2013]]<br />
*[[Google Summer of Code 2012]]<br />
*'''[[Google Summer of Code 2011]]''' (accepted)<br />
*[[Google Summer of Code 2010]]<br />
*[[Google Summer of Code 2009]]<br />
*[[Google Summer of Code 2007]]<br />
*'''[[Google Summer of Code 2006]]''' (accepted)<br />
<br />
[[Category:Google Summer of Code]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Build_Environment&diff=50796Build Environment2020-06-11T17:22:15Z<p>Colin Finck: /* Download */</p>
<hr />
<div>Here you can download the ReactOS Build Environment (RosBE), the official build environment for compiling ReactOS from source code.<br />
It contains curated versions of all required build tools, such as Binutils, GCC, CMake, etc. RosBE makes sure that you can successfully build ReactOS without any hassle, and even if you hit problems, you won't be on your own.<br />
<br />
If you like to build ReactOS using Microsoft Visual Studio instead of GCC, please install RosBE anyway.<br />
It contains some tools not available in Visual Studio (e.g. Bison and Flex) as well as some tool versions (e.g. CMake) where Visual Studio ships different ones.<br />
<br />
If you want to report problems, please first make sure that you use the latest version of the ReactOS Build Environment.<br />
<br />
== Download ==<br />
<div style="display: flex;"><br />
<div style="padding-right: 10px;">[[File:RosBE.png|64px]]</div><br />
<div><br />
<p><span style="font-size: 16pt; font-weight:bold">[https://downloads.sourceforge.net/reactos/RosBE-{{RosBE-Windows-Version}}.exe RosBE-Windows {{RosBE-Windows-Version}}]</span><br><br />
for building under [[File:Download-ReactOS.png|24px]] [[File:Download-Windows.png|24px]]</p><br />
</div><br />
</div><br />
<br />
<br />
<div style="display: flex;"><br />
<div style="padding-right: 10px;">[[File:RosBE.png|64px]]</div><br />
<div><br />
<p><span style="font-size: 16pt; font-weight:bold">[https://downloads.sourceforge.net/reactos/RosBE-Unix-{{RosBE-Unix-Version}}.tar.bz2 RosBE-Unix {{RosBE-Unix-Version}}]</span><br><br />
for building under [[File:Download-Linux.png|24px]] [[File:Download-MacOS.png|24px]]</p><br />
<br />
[[File:Download-Ubuntu.png|24px]] Ubuntu 18.04 and 20.04 users can install a precompiled package from [https://launchpad.net/~reactos/+archive/ubuntu/rosbe-unix our Launchpad PPA] using:<br />
<pre><br />
sudo add-apt-repository ppa:reactos/rosbe-unix<br />
sudo apt install rosbe-unix<br />
</pre><br />
</div><br />
</div><br />
<br />
<br />
Requirements:<br />
* Windows XP or later<br />
* Linux with GCC 6.x or later<br />
* macOS 10.11 or later (with Xcode Command Line Tools installed)<br />
<br />
== Further Resources ==<br />
* [[Building ReactOS]]<br />
* [[Build Environment/Included Utilities|Included Utilities]]<br />
* [http://sourceforge.net/projects/reactos/files Older versions at our SourceForge project page]<br />
<br />
== Questions or Problems? ==<br />
If you have problems or questions concerning the Build Environment, it's the best to ask in the [https://chat.reactos.org/reactos/channels/rosbe RosBE Mattermost channel].<br />
<br />
Otherwise, you can also contact [[Daniel Reimer]] (Windows version) or [[Colin Finck]] (Unix version) directly.<br />
<br />
[[Category:Building]]<br />
[[Category:Tutorial]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Build_Environment&diff=50795Build Environment2020-06-11T17:18:02Z<p>Colin Finck: Add the Ubuntu packages</p>
<hr />
<div>Here you can download the ReactOS Build Environment (RosBE), the official build environment for compiling ReactOS from source code.<br />
It contains curated versions of all required build tools, such as Binutils, GCC, CMake, etc. RosBE makes sure that you can successfully build ReactOS without any hassle, and even if you hit problems, you won't be on your own.<br />
<br />
If you like to build ReactOS using Microsoft Visual Studio instead of GCC, please install RosBE anyway.<br />
It contains some tools not available in Visual Studio (e.g. Bison and Flex) as well as some tool versions (e.g. CMake) where Visual Studio ships different ones.<br />
<br />
If you want to report problems, please first make sure that you use the latest version of the ReactOS Build Environment.<br />
<br />
== Download ==<br />
<div style="display: flex;"><br />
<div style="padding-right: 10px;">[[File:RosBE.png|64px]]</div><br />
<div><br />
<p><span style="font-size: 16pt; font-weight:bold">[https://downloads.sourceforge.net/reactos/RosBE-{{RosBE-Windows-Version}}.exe RosBE-Windows {{RosBE-Windows-Version}}]</span><br><br />
for building under [[File:Download-ReactOS.png|24px]] [[File:Download-Windows.png|24px]]</p><br />
</div><br />
</div><br />
<br />
<br />
<div style="display: flex;"><br />
<div style="padding-right: 10px;">[[File:RosBE.png|64px]]</div><br />
<div><br />
<p><span style="font-size: 16pt; font-weight:bold">[https://downloads.sourceforge.net/reactos/RosBE-Unix-{{RosBE-Unix-Version}}.tar.bz2 RosBE-Unix {{RosBE-Unix-Version}}]</span><br><br />
for building under [[File:Download-Linux.png|24px]] [[File:Download-MacOS.png|24px]]</p><br />
<br />
[[File:Download-Ubuntu.png|24px]] Ubuntu 18.04 and 20.04 users can install a precompiled package using:<br />
<pre><br />
sudo add-apt-repository ppa:reactos/rosbe-unix<br />
sudo apt install rosbe-unix<br />
</pre><br />
</div><br />
</div><br />
<br />
<br />
Requirements:<br />
* Windows XP or later<br />
* Linux with GCC 6.x or later<br />
* macOS 10.11 or later (with Xcode Command Line Tools installed)<br />
<br />
== Further Resources ==<br />
* [[Building ReactOS]]<br />
* [[Build Environment/Included Utilities|Included Utilities]]<br />
* [http://sourceforge.net/projects/reactos/files Older versions at our SourceForge project page]<br />
<br />
== Questions or Problems? ==<br />
If you have problems or questions concerning the Build Environment, it's the best to ask in the [https://chat.reactos.org/reactos/channels/rosbe RosBE Mattermost channel].<br />
<br />
Otherwise, you can also contact [[Daniel Reimer]] (Windows version) or [[Colin Finck]] (Unix version) directly.<br />
<br />
[[Category:Building]]<br />
[[Category:Tutorial]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=File:Download-Ubuntu.png&diff=50794File:Download-Ubuntu.png2020-06-11T16:52:39Z<p>Colin Finck: From https://commons.wikimedia.org/wiki/File:Ubuntu-Logo_ohne_Schriftzug.svg</p>
<hr />
<div>== Summary ==<br />
From https://commons.wikimedia.org/wiki/File:Ubuntu-Logo_ohne_Schriftzug.svg</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Template:RosBE-Unix-Version&diff=50743Template:RosBE-Unix-Version2020-05-31T14:10:52Z<p>Colin Finck: </p>
<hr />
<div>2.2.1<noinclude>[[Category:Template]]</noinclude></div>Colin Finckhttps://reactos.org/wiki/index.php?title=Build_Environment&diff=50742Build Environment2020-05-31T14:09:40Z<p>Colin Finck: </p>
<hr />
<div>Here you can download the ReactOS Build Environment (RosBE), the official build environment for compiling ReactOS from source code.<br />
It contains curated versions of all required build tools, such as Binutils, GCC, CMake, etc. RosBE makes sure that you can successfully build ReactOS without any hassle, and even if you hit problems, you won't be on your own.<br />
<br />
If you like to build ReactOS using Microsoft Visual Studio instead of GCC, please install RosBE anyway.<br />
It contains some tools not available in Visual Studio (e.g. Bison and Flex) as well as some tool versions (e.g. CMake) where Visual Studio ships different ones.<br />
<br />
If you want to report problems, please first make sure that you use the latest version of the ReactOS Build Environment.<br />
<br />
== Download ==<br />
[[File:RosBE.png|64px|left]]<br />
<span style="font-size: 16pt; font-weight:bold">[https://downloads.sourceforge.net/reactos/RosBE-{{RosBE-Windows-Version}}.exe RosBE-Windows {{RosBE-Windows-Version}}]</span><br><br />
for building under [[File:Download-ReactOS.png|24px]] [[File:Download-Windows.png|24px]]<br />
<br />
<br />
[[File:RosBE.png|64px|left]]<br />
<span style="font-size: 16pt; font-weight:bold">[https://downloads.sourceforge.net/reactos/RosBE-Unix-{{RosBE-Unix-Version}}.tar.bz2 RosBE-Unix {{RosBE-Unix-Version}}]</span><br><br />
for building under [[File:Download-Linux.png|24px]] [[File:Download-MacOS.png|24px]]<br />
<br />
<div style="clear: both;"></div><br />
<br />
<br />
Requirements:<br />
* Windows XP or later<br />
* Linux with GCC 6.x or later<br />
* macOS 10.11 or later (with Xcode Command Line Tools installed)<br />
<br />
== Further Resources ==<br />
* [[Building ReactOS]]<br />
* [[Build Environment/Included Utilities|Included Utilities]]<br />
* [http://sourceforge.net/projects/reactos/files Older versions at our SourceForge project page]<br />
<br />
== Questions or Problems? ==<br />
If you have problems or questions concerning the Build Environment, it's the best to ask in the [https://chat.reactos.org/reactos/channels/rosbe RosBE Mattermost channel].<br />
<br />
Otherwise, you can also contact [[Daniel Reimer]] (Windows version) or [[Colin Finck]] (Unix version) directly.<br />
<br />
[[Category:Building]]<br />
[[Category:Tutorial]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Build_Environment/Included_Utilities&diff=50741Build Environment/Included Utilities2020-05-31T13:22:13Z<p>Colin Finck: From https://reactos.org/wiki/Build_Environment</p>
<hr />
<div>All this information can also be found in RosBE by typing <code>help</code>.<br />
<br />
=== <code>BASEDIR</code> ===<br />
Switch back to the ReactOS source base directory.<br />
<br />
=== <code>CHARCH</code> ===<br />
Change the target architecture for building ReactOS for the current RosBE session.<br />
Currently supported architectures are:<br />
* '''i386'''<br />
* '''amd64'''<br />
<br />
=== <code>CHDEFDIR</code> ===<br />
Change the ReactOS source directory for the current RosBE session.<br />
<br />
* '''previous''': Switch to the previous ReactOS source directory.<br />
<br />
=== <code>CHDEFGCC</code> (RosBE-Windows only) ===<br />
Usage: <code>chdefgcc [PATH] [TYPE]</code><br />
Change the MinGW/GCC directory for the current RosBE session.<br />
<br />
* '''Path''': Path to set the Host or Target GCC to.<br />
* '''Type''': Set it to "target" or "host"<br />
<br />
=== <code>RADDR2LINE</code> (RosBE-Windows only) ===<br />
<!-- the template does not work well here --><br />
''Main article: [[Debugging#Translating Addresses|Debugging – Translating Addresses]]''<br />
<br />
Usage: <code>raddr2line [FILE] [ADDRESS]</code><br />
Translates program addresses into file names and line numbers to assist developers with finding specific bugs in ReactOS. If either of the options is not given you will be prompted for it.<br />
<br />
* '''FILE''': This can be either a fully specified path or just the file name [you can use a partial name ie. ntdll*] of the executable to be analyzed. When using just a file the current directory and all sub-directories are searched.<br />
* '''ADDRESS''': The address to be translated.<br />
<br />
=== <code>SCUT</code> ===<br />
Simple utility for managing different directory locations. SCUT can be used to quickly change from one directory to another inside the BE prompt, making it easier to go to source in another directory. Included in both the Windows and Unix BEs.<br />
You can pass the following parameters to scut:<br />
<br />
* '''list''': Lists all shortcuts currently available.<br />
* '''add''': Adds a shortcut to the list.<br />
* '''edit''': Edits a shortcut on the list.<br />
* '''rem''': Removes a shortcut from the list.<br />
* '''def''': Switches to the default directory location, which is enabled on every start of RosBE.<br />
<br />
If you want to use a directory shortcut, for example one with the name ''trunk'', just enter ''scut trunk'' and the program will switch to the directory you set for this shortcut.<br />
<br />
=== <code>UPDATE</code> (RosBE-Windows only) ===<br />
Updates all files of RosBE to the most recent files.<br />
<br />
* '''delete X''': Deletes Update Nr X.<br />
* '''info X''': Shows info about Update Nr X.<br />
* '''nr X''': Re/Installs Update Nr X.<br />
* '''reset''': Removes the Updates Cache. Not recommended.<br />
* '''status''': Shows the recent status of available, non installed updates.</div>Colin Finckhttps://reactos.org/wiki/index.php?title=File:Download-Windows.png&diff=50740File:Download-Windows.png2020-05-31T13:15:24Z<p>Colin Finck: From https://commons.wikimedia.org/wiki/File:Windows_logo_2012-Black.svg</p>
<hr />
<div>== Summary ==<br />
From https://commons.wikimedia.org/wiki/File:Windows_logo_2012-Black.svg</div>Colin Finckhttps://reactos.org/wiki/index.php?title=File:Download-ReactOS.png&diff=50739File:Download-ReactOS.png2020-05-31T13:14:52Z<p>Colin Finck: From https://github.com/reactos/press-media/blob/master/Art/Logo/Orb/logo_notext_opacity.svg</p>
<hr />
<div>== Summary ==<br />
From https://github.com/reactos/press-media/blob/master/Art/Logo/Orb/logo_notext_opacity.svg</div>Colin Finckhttps://reactos.org/wiki/index.php?title=File:Download-MacOS.png&diff=50737File:Download-MacOS.png2020-05-31T13:12:37Z<p>Colin Finck: From https://commons.wikimedia.org/wiki/File:Apple_logo_black.svg</p>
<hr />
<div>== Summary ==<br />
From https://commons.wikimedia.org/wiki/File:Apple_logo_black.svg</div>Colin Finckhttps://reactos.org/wiki/index.php?title=File:Download-Linux.png&diff=50736File:Download-Linux.png2020-05-31T13:11:11Z<p>Colin Finck: From https://commons.wikimedia.org/wiki/File:Tux.svg
Attribution: lewing@isc.tamu.edu Larry Ewing and The GIMP</p>
<hr />
<div>== Summary ==<br />
From https://commons.wikimedia.org/wiki/File:Tux.svg<br />
<br />
Attribution: lewing@isc.tamu.edu Larry Ewing and The GIMP</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Building_ReactOS&diff=50569Building ReactOS2020-05-01T08:47:52Z<p>Colin Finck: /* See also */</p>
<hr />
<div><!-- '''NOTE: This page is deprecated and is purely here for archival purposes. For instructions on building ReactOS, please see the [http://www.reactos.org/development/build-environment build environment] page of the development guide.''' --><br />
This page describes the steps necessary to build ReactOS.<br />
<br />
== Getting all you need ==<br />
=== Setting up a Build Environment ===<br />
For building ReactOS you also need the official [[ReactOS Build Environment]]. Please download and install it from that page.<br />
<br />
Make sure that no interfering build environment (such as MSYS) is in your PATH environment variable when building.<br />
<br />
<!-- {{Notice|Due to a current bug, the build environment can not use a build folder that contains spaces in its path name.<br /><br />
Under Windows XP and 2003 you must change the default location of "C:\Documents and Settings\[username]\reactos\".}} --><br />
=== Optional: Set Up Visual Studio ===<br />
If you want to use Visual Studio to compile ReactOS, you need to get one of the supported version, which is VS2010 and later. You can download the free Community Edition of Visual Studio 2015. To compile with VS, open the appropriate VS command prompt and follow the same instructions as for building with the GCC based ReactOS build environment. Note that you still need the ReactOS build environment, which contains CMake and some additional tools, or you can install the latest version of CMake yourself, but that is not recommended. If you experience problems with the configure stage, e.g. the compiler is reported to not be working, please check if you have installed any additional Windows SDKs or WDK and try again after removing them.<br />
<br />
=== Getting a Working Copy ===<br />
The first step in building ReactOS is getting a copy of the source code.<br />
<br />
You can use the exported release source code, but since you are reading this, you are probably interested in keeping up to date with the latest changes, so you will want a "working copy" of ReactOS.<br />
To get a working copy of ReactOS, please read the [[ReactOS_Git_For_Dummies|ReactOS Git For Dummies]] page.<br />
<br />
You need to have [https://git-scm.com/ Git] installed on your system. The command<br />
git clone https://github.com/reactos/reactos.git <br />
from within the command prompt will download it.<br />
<br />
== Prerequisites ==<br />
For building ReactOS you will need at least 2 GB of RAM, preferably 4 GB.<br />
If you are [[Building ReactOS on a cloud node instance|building on a cloud server instance]] having less than 2 GB of RAM, you might find that your SSH connection to the cloud node is forcibly closed during the "./configure" step. This is usually caused by running out-of-memory during the CMake configure step.<br />
<br />
{{Notice|It is recommended to temporarily disable your antivirus before proceeding, because some of them detect some of ReactOS' system files (in particular, crtdll.dll) as being infected.}}<br />
<br />
Before building either the tools or ReactOS itself the output location must be created and prepared. This is an easy step and involves only one command. This command is located in the root of recent revisions of the source code and can be run either from the root directory itself or any other directory you want the build your sources in. Please make sure you are running it from within ReactOS BE:<br />
<br />
=== Linux/Unix ===<br />
Run:<br />
<syntaxhighlight lang="bash"><br />
configure.sh<br />
cd output-MinGW-i386<br />
</syntaxhighlight><br />
<br />
=== Windows or ReactOS ===<br />
Run:<br />
<syntaxhighlight lang="dos"><br />
configure.cmd<br />
cd output-MinGW-i386<br />
</syntaxhighlight><br />
After executing, folder <tt>output-MinGW-i386</tt> will be created in root of ReactOS tree. You will be redirected to it.<br />
If you want to build in a different folder, cd to that folder first and then execute<br />
<syntaxhighlight lang="dos"><br />
<path_to_source>\configure.cmd<br />
</syntaxhighlight><br />
<br />
configure.cmd currently supports the following options:<br />
* <code>/?</code> displays help<br />
* <code>Codeblocks</code> creates a CodeBlocks solution<br />
* <code>Eclipse</code> creates an Eclipse solution<br />
* <code>Makefiles</code> creates (n)make files<br />
* <code>clang</code> Uses clang instead of gcc<br />
* <code>VSSolution</code> Creates a Visual Studio solution<br />
<br />
You can additionally specify any number of cmake command line options, like "-DSYMBOL=VALUE".<br />
<br />
=== Building ReactOS on Windows or ReactOS* ===<br />
From the build folder (e.g. reactos\output-MinGW-i386) enter the following command:<br />
<syntaxhighlight lang="dos"><br />
ninja COMMANDS<br />
</syntaxhighlight><br />
<br />
Replace "COMMANDS" with the desired build commands, such as <code>bootcd</code> or <code>livecd</code>, listed below:<br />
<br />
<small>* Perhaps, some functions of RosBE may not work on ReactOS. If so, please have a look on our [http://jira.reactos.org/ Jira] page whether this problem is already reported or not.</small><br />
<br />
=== Building ReactOS on Unix/Linux ===<br />
<syntaxhighlight lang="dos"><br />
ninja COMMANDS<br />
</syntaxhighlight><br />
Combining the above steps together:<br />
Replace "COMMANDS" with the desired build commands, such as <code>bootcd</code> or <code>livecd</code>, listed below:<br />
<br />
== Commands ==<br />
<br />
After you have started a Build Environment Command Prompt, there are certain commands available.<br />
<br />
=== Invoking a build ===<br />
<br />
<code>'''ninja'''</code> or <code>'''ninja all'''</code><br />
<br />
This command builds all binaries of ReactOS. They will be placed in the created output directory created by the configure command. (default: ''output-MinGW-i386/reactos'')<br />
All source files, which did not change since the last build, will not be built again.<br />
<br />
<code>'''ninja bootcd'''</code><br />
<br />
This command works like ''make'', but also generates a bootable ReactOS ISO file (''bootcd.iso'') placed into the output directory.<br />
It is wise to tag your Boot-CDs with the revision they were built from if you need to keep many ReactOS ISOs.<br />
<br />
<code>'''ninja livecd'''</code><br />
<br />
This command generates ''livecd.iso'' in the output directory. This is the ReactOS Live-CD that runs completely from the CD-ROM.<br />
<br />
<code>'''ninja hybridcd'''</code><br />
<br />
This command generates ''hybridcd.iso'' in the output directotry. This is a hybrid cd of ReactOS<br />
<br />
<!--<br />
=== Other ===<br />
<br />
'''clean'''<br />
This command cleans all files of your working copy except the generated ISO files (if any). The next build you make will be completely clean then. Any parameters will recognized as module name and only this module will be cleaned then. --><br />
<!-- to be continued --><br />
<br />
== Adding modules to the build process ==<br />
<br />
There are several modules you can add to the build process. For example ''rosapps'' contains some additional applications not included by default.<br />
<br />
The page [[Building Modules]] describes, which modules exist and how to add them to the build process.<br />
<br />
== See also ==<br />
* [[Building with MSVC]]<br />
* [[Building MINGW-w64]]<br />
* [http://www.reactos.org/forum/viewtopic.php?f=22&t=11000 Building with Ninja] latest build method, RosBE v2.1<br />
<br />
[[Category:Building]]<br />
[[Category:Tutorial]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Build_Environment&diff=50557Build Environment2020-04-29T19:02:32Z<p>Colin Finck: /* Included Utilities */</p>
<hr />
<div>To build ReactOS you will need a suitable build environment. Currently ReactOS Source Code is able to be compiled using both open source (gcc, mingw, …), and Microsoft's compiler tools, with the official ReactOS Build Environment (RosBE) being recommended. If you want to report problems, please first make sure that you use the latest version of the ReactOS Build Environment.<br />
<br />
== Download the Build Environment ==<br />
<br />
There are two ReactOS Build Environments available, a version for Windows NT-compatible operating systems (Windows XP, Windows Vista, 7, etc.) and a version for Unix-compatible operating systems (Linux, FreeBSD, etc.).<br />
<br />
=== Windows ===<br />
----<br />
<span style="font-size: 12pt; font-weight: bold; ">[[File:RosBE.png|32px]]<br />
[http://sourceforge.net/projects/reactos/files/RosBE-Windows/i386/{{RosBE-Windows-Version}}/RosBE-{{RosBE-Windows-Version}}.exe/download ReactOS Build Environment for Windows NT-compatible OS ''Version {{RosBE-Windows-Version}}'']<br />
</span><br />
* For older versions, please have a look at our [http://sourceforge.net/projects/reactos/files/RosBE-Windows/i386/ ReactOS SourceForge project page]<br />
----<br />
<br />
=== Unix and Linux ===<br />
----<br />
<span style="font-size: 12pt; font-weight: bold;">[[File:RosBE.png|32px]]<br />
[http://downloads.sourceforge.net/reactos/RosBE-Unix-{{RosBE-Unix-Version}}.tar.bz2 ReactOS Build Environment for Unix-compatible Operating Systems ''Version {{RosBE-Unix-Version}}'']</span><br />
* For older versions, please have a look at our [http://sourceforge.net/projects/reactos/files/RosBE-Unix/ ReactOS SourceForge project page]<br />
* '''System Requirements:''' Please look at the <tt>README</tt> file for detailed information about the needed packages and other requirements.<br />
----<br />
== Next Steps ==<br />
<br />
After setting up your build environment, see [[Building ReactOS]] for downloading source and further information.<br />
<br />
== Included Utilities ==<br />
<br />
All these Information can be found in RosBE, too by typing <code>help</code>.<br />
<br />
=== <code>BASEDIR</code> ===<br />
<br />
Small command which immediately sets you back to the ReactOS Source Base Directory.<br />
<br />
=== <code>CHARCH</code> ===<br />
<br />
Change the Architecture to build ReactOS for, for the current RosBE session.<br />
Possible Architectures are right now:<br />
* '''i386'''<br />
* '''amd64'''<br />
<br />
=== <code>CHDEFDIR</code> ===<br />
<br />
Change the ReactOS source directory for the current RosBE session.<br />
<br />
* '''previous''': Switch to the previous ReactOS source directory.<br />
<br />
=== <code>CHDEFGCC</code> ===<br />
<br />
Usage: <code>chdefgcc [PATH] [TYPE]</code><br />
Change the MinGW/GCC directory for the current RosBE session.<br />
<br />
* '''Path''': Path to set the Host or Target GCC to.<br />
* '''Type''': Set it to "target" or "host"<br />
<br />
=== <code>RADDR2LINE</code> ===<br />
<!--the template does not work her so well --><br />
''Main article: [[Debugging#Translating Addresses|Debugging – Translating Addresses]]''<br />
<br />
Usage: <code>raddr2line [FILE] [ADDRESS]</code><br />
Translates program addresses into file names and line numbers to assist developers with finding specific bugs in ReactOS. If either of the options is not given you will be prompted for it.<br />
<br />
* '''FILE''': This can be either a fully specified path or just the file name [you can use a partial name ie. ntdll*] of the executable to be analyzed. When using just a file the current directory and all sub-directories are searched.<br />
* '''ADDRESS''': The address to be translated.<br />
<br />
=== <code>SCUT</code> ===<br />
<br />
Simple utility for managing different directory locations. SCUT can be used to quickly change from one directory to another inside the BE prompt, making it easier to go to source in another directory. Included in both the Windows and Unix BEs.<br />
You can pass the following parameters to scut:<br />
<br />
* '''list''': Lists all shortcuts currently available.<br />
* '''add''': Adds a shortcut to the list.<br />
* '''edit''': Edits a shortcut on the list.<br />
* '''rem''': Removes a shortcut from the list.<br />
* '''def''': Switches to the default directory location, which is enabled on every start of RosBE.<br />
<br />
If you want to use a directory shortcut, for example one with the name ''trunk'', just enter ''scut trunk'' and the program will switch to the directory you set for this shortcut.<br />
<br />
=== <code>UPDATE</code> ===<br />
<br />
Windows ONLY.<br />
Updates all files of RosBE to the most recent files.<br />
<br />
* '''delete X''': Deletes Update Nr X.<br />
* '''info X''': Shows info about Update Nr X.<br />
* '''nr X''': Re/Installs Update Nr X.<br />
* '''reset''': Removes the Updates Cache. Not recommended.<br />
* '''status''': Shows the recent status of available, non installed updates.<br />
<br />
== Questions or Problems? ==<br />
<br />
If you have problems or questions concerning the Build Environment, it's the best to ask in the [irc://irc.freenode.net/reactos-rosbe #reactos-rosbe] or [irc://irc.freenode.net/reactos #reactos] IRC channels.<br />
<br />
Otherwise you can also try to contact [[Daniel Reimer]] (Windows version), [[Colin Finck]] (Unix version) directly.<br />
<br />
[[Category:Building]]<br />
[[Category:Tutorial]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Google_Summer_of_Code_2006&diff=50298Google Summer of Code 20062020-02-21T09:08:20Z<p>Colin Finck: /* Accepted Projects */</p>
<hr />
<div>ReactOS takes part in [http://code.google.com/summerofcode.html Google's Summer of Code], a project which sponsors students working on OpenSource Software with 4,500&nbsp;USD.<br />
<br />
''Please note that this a private wikipage only for the SoC mentors to edit and which may be subject to changes. If you are not sure about a idea or if you think something should be removed please use the [[Talk:Summer of Code 2006|Discussion Page]].''<br />
<br />
== Accepted Projects ==<br />
<br />
https://developers.google.com/open-source/gsoc/2006<br />
<br />
{| class="wikitable"<br />
|-<br />
! Project !! Student !! Mentor(s)<br />
|-<br />
| Remote Desktop client application & ActiveX control || Michele Cicciotti || Alex Ionescu<br />
|-<br />
| Clipboard Server API Implementation || Pablo Borobia || Thomas Weidenmueller<br />
|}<br />
<br />
== Project Suggestions ==<br />
<br />
=== Priority Ideas ===<br />
<br />
* Windows-compatible network card drivers for the following:<br />
** Nvidia Nforce<br />
** Network Everywhere/Linksys NC100<br />
** Etherlink 3c905/959 (Steven has a 3c905-TX card he can send you if you don't have one)<br />
<br />
* Develop (improve, finish) our Windows XP/2003 compatible USB Stack, notably to fix compatibility problems and add 2.0 support.<br />
<br />
* Fix any outstanding bugs in our NPFS (Named Pipe File System) driver and work on a more advanced version of the WINE NPFS Test Suite to fully test and verify it.<br />
<br />
* Winlogon/GINA. Develop an actual login implementation in ReactOS, by improving the current WinLogon code and creating a GINA. Documentation is avalable on MSDN and through the following GPL GINA project: http://pgina.xpasystems.com/<br />
<br />
* Explorer enhancements (look for [[Alex's 0.3.0 'User Wow Factor' Ideas]] stuff, plus other explorer enhancements to make it more like windows, look in [[Roadmap]] for references). Going over the shell32/shlwapi code and implementing any missing windows functionality.<br />
<br />
* Clipboard. Complete implementation of a Windows-compatible clipboard. Currently ReactOS has none at all<br />
<br />
=== Secondary Ideas ===<br />
<br />
* Your choice of one of the following working, Windows/DDK-compatible IFS Drivers:<br />
** UDF<br />
** EXT3<br />
** Reiser4<br />
** ZFS<br />
<br />
* Sound architecture in ReactOS (having Windows XP/2003 sound architecture as a reference). Since this is a massive project to undertake, the current priority is on the WDMAUD.DRV/WDMAUD.SYS interface. The NT4 MMDRV.DRV sample will help, as well as some Audio Architecture information available on MSDN and some slides which we can provide. Furthermore, some work has already been done on the libraries, and one of our developers can provide clean-room documentation for it.<br />
<br />
* Code a Direct3D 9 compatible dll working under Windows (not a wrapper that calls OpenGL). We already have much HEL (Emulation Layer) functionality included but are lacking the HAL code and Kernel-Mode interface<br />
<br />
* Develop the "Workstation" service for basic SMB support, or the SMB Redirector driver for kernel-mode support. Sample code is available in the Windows 2003 IFS Kit.<br />
<br />
* Develop the "Spooler" service for basic printer support.<br />
<br />
=== Tertiary Ideas ===<br />
<br />
* UXTheme support. Implementing a working uxtheme.dll that is compatible with Windows and provides Theming support. If time permits, develop a compatible "Themes" service which provides the same interface as on Windows. WINE already provides a basic uxtheme.dll file, which may or may not need fixing to be compatible on Windows, so work on it might be minimal, with most of the focus going towards the Themes service.<br />
<br />
* Implement a MMC 2.0 replacement, that can be used in ReactOS to load MMC-plugins, which are XML files.<br />
<br />
* Any windows application you might want to "clone" (=develop an alternative, FOSS implementation).<br />
<br />
== Accepted Projects ==<br />
<br />
* [[Remote Desktop client application and ActiveX control]] by Michele Cicciotti, mentored by [[Alex Ionescu]]<br />
* [[ReactOS Print Spooler Service (Spoolsv)]] by Peter Windridge, mentored by [[Alex Ionescu]]<br />
* [[Login System]] by Justin Haygood, mentored by [[Thomas Weidenmueller]]<br />
* [[Clipboard Server API Implementation]] by Pablo Anibal Borobia, mentored by [[Thomas Weidenmueller]]<br />
<br />
== External links ==<br />
<br />
These links which might help you to write a successful application.<br />
<br />
* [http://drupal.org/node/59037 HOWTO: Write a Summer of Code application from Drupal]<br />
* [http://summerofcode.xwiki.com/xwiki/bin/view/Main/ExampleApplications Accepted applications from different projects collected by XWiki]<br />
* [http://code.google.com/soc/reactos/about.html Organization information and projects being worked on]<br />
* [http://code.google.com/soc/mentorfaq.html#timeline Summer of Code 2006 timeline]<br />
<br />
== Contact Information ==<br />
For any inquiries, additional ideas or suggestions, please mail one of our two mentors:<br />
<br />
* [[Aleksey Bragin]] (aleksey [at] reactos [dot] org)<br />
* [[Alex Ionescu]] (alex [dot] ionescu [at] reactos [dot] org)<br />
<br />
[[Category:Google Summer of Code]]<br />
[[Category:Community]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Google_Summer_of_Code_2020_Ideas&diff=50169Google Summer of Code 2020 Ideas2020-02-07T07:36:55Z<p>Colin Finck: /* System Enhancements */ Added C++ standard library idea</p>
<hr />
<div>This page lists all the project ideas for our Google Summer of Code 2020 application. Students should also visit our [[Google Summer of Code 2020|general GSoC 2020 page]] for more information including a Student Guide and our contact information.<br />
<br />
== Your Own Idea! ==<br />
We are eager to hear about your proposal to improve either ReactOS or its infrastructure. Come and propose your project on the ReactOS developers mailing-list or on IRC to get feedback about its feasibility. If your project is doable, we will be glad to provide you with a mentor so you can succeed in your project.<br />
<br />
Don't forget that ReactOS is a big project and application fields are wide. You can choose between user-mode or kernel-mode development, between application, or dll/driver development, or between working on ReactOS itself or on extra tools used by developers for their daily work on ReactOS. Also if all you prefer is web development, we also have needs there. <br />
<br />
;Skills needed<br />
: Yours<br />
<br />
;Difficulty<br />
: The one you'll have set<br />
<br />
;Extras<br />
: You'll be working on your own project and be able to choose its direction along with your mentor :-).<br />
<br />
== Networking ==<br />
=== NDIS Miniport Drivers for Common Network Cards ===<br />
Network card drivers are important for a good out-of-box experience since they are the key requirement for the user's ability to download additional drivers and applications. ReactOS currently includes drivers for AMD PCnet III, Realtek RTL8139, Intel PRO/1000 (Intel 8254x family) and NE2000.<br />
<br />
However, these drivers don't cover all modern computer systems. Prominent examples are the Realtek RTL8169/8110, the newer Intel chips connected by PCI-E (handled by the e1000e driver under linux) as well as the Broadcom BCM57XX Gigabit Ethernet adapters, which are very common these days. The latter one is also used by the official ReactOS demo laptop (Dell Latitude D531).<br />
ReactOS also lacks a driver for the DC21x4, which is the network adapter emulated by Microsoft Virtual PC/Hyper-V.<br />
A stretch goal may be getting basic NDIS 6.0 support for drivers.<br />
<br />
;Benefits<br />
: "Just works" experience on many physical computers and laptops as well as virtual machines.<br />
<br />
;References<br />
: [https://docs.microsoft.com/en-us/previous-versions/windows/hardware/network/ff557065(v=vs.85) MSDN: NDIS 5.1 Miniport Drivers]<br />
: [https://github.com/reactos/reactos/tree/master/drivers/network/dd Existing built-in network driver sources]<br />
: [https://stuff.mit.edu/afs/sipb/contrib/doc/specs/ic/network/dc21041.pdf Digital Semiconductor 21041 PCI Ethernet LAN Controller Hardware Reference Manual]<br />
: [https://wiki.osdev.org/RTL8169 Start point for RTL8169]<br />
: [http://people.redhat.com/ivecera/RTL8110S-8169S%20Specification%201.3.pdf RTL8169 specification]<br />
: [http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/82577-gbe-phy-datasheet.pdf Datasheet for the Intel 82577 PHY]<br />
: [https://github.com/haiku/haiku/tree/master/src/add-ons/kernel/drivers/network Driver Overview of Haiku]<br />
: [https://github.com/haiku/haiku/tree/abb59d7351c7ddb50c63c40430a82d94fa61917a/src/add-ons/kernel/drivers/network/rtl8169 RTL8169 driver for haiku in 1000 lines]<br />
: [https://www.codeproject.com/Articles/24384/NDIS-sample-miniport-driver-for-realtek An open source RTL8169 NDIS 6.0 driver]<br />
: [https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-0 Overview of NDIS 6.0]<br />
: [https://docs.microsoft.com/de-de/previous-versions/windows/hardware/network/porting-a-miniport-driver-to-ndis-6-0 Porting drivers from NDIS5 to NDIS6 - for getting an overview what needs to be done/adapted]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Kernel driver and/or NDIS programming experience<br />
: Experience working with hardware specification documents<br />
<br />
=== Fundamental WiFi components ===<br />
ReactOS already supports the majority of drivers for cabled Ethernet controllers.<br />
Supporting wireless WiFi controllers requires additional components for enumerating networks, handling a connection and encrypting the communication.<br />
These are almost non-existing in ReactOS right now, and WPA encryption is entirely unsupported.<br />
Having WiFi components would greatly improve the ReactOS experience on mobile computers.<br />
<br />
The student should implement the basic components for WiFi connections found in modern Windows versions (NT6 and later). The components should support connecting to unencrypted and encrypted WEP/WPA/WPA2 networks.<br />
We're deliberately not targeting WinXP (NT5) here, because of major architectural changes in the WiFi components since then.<br />
<br />
;References<br />
: [https://technet.microsoft.com/de-de/library/cc766215(v=ws.10).aspx#BKMK_AppndxB Windows Vista DLLs and function descriptions]<br />
: [https://msdn.microsoft.com/en-us/library/windows/hardware/ff543936(v=vs.85).aspx 802.11 Wireless LAN Objects]<br />
: [https://msdn.microsoft.com/en-us/library/windows/desktop/ms706274(v=vs.85).aspx Native Wifi functions]<br />
: [http://redplait.blogspot.de/2010/11/wlanmsmdll-rpc-interfaces.html wlanmsm.dll RPC Interfaces]<br />
: [https://sourceforge.net/p/mingw-w64/mingw-w64/ci/4a306baa4a206c9314bdc129e98abfa1aebe2b0e/tree/mingw-w64-crt/libarm32/wlansec.def Exports of wlansec.dll]<br />
: [http://securityxploded.com/wifi-password-secrets.php WiFi Password Secrets]<br />
: [https://jira.reactos.org/browse/CORE-11924 CORE-11924]<br />
: [https://jira.reactos.org/browse/CORE-6905 CORE-6905]<br />
<br />
;Needed Skills<br />
: Software Development in C and under Windows<br />
: Familiarity with Windows networking<br />
: Previous experience with RPC would be a plus<br />
<br />
=== Automatic Proxy Configuration ===<br />
'''Useful for:''' End-users<br />
<br />
Certain network configurations, especially in businesses, require proxy servers to access the internet. If the local network is setup up appropriately, modern operating systems can automatically determine the correct proxy server to use. This is made possible through Proxy Auto-Configuration (PAC) files and the Web Proxy Auto-Discovery Protocol (WPAD).<br />
<br />
;Benefits<br />
: Automatic "just works" internet access in additional environments<br />
: Networking support in business settings<br />
<br />
;References<br />
: [https://en.wikipedia.org/wiki/Web_Proxy_Auto-Discovery_Protocol Wikipedia: WPAD]<br />
: [https://web.archive.org/web/20070602031929/http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html Proxy Client Autoconfig File Format]<br />
: [https://en.wikipedia.org/wiki/Proxy_auto-config Wikipedia: PAC]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Familiarity with Win32 APIs<br />
: Familiarity with relevant technologies like DHCP and JavaScript<br />
<br />
=== Windows Remote Management ===<br />
'''Useful for:''' End-users and developers<br />
<br />
WinRM is a Web Service that allows remote management of Windows machines. This includes authentication as well as remote execution of PowerShell and other scripts.<br />
<br />
WinRM can be seen as Windows' equivalent to SSH, and it is useful for remote administration, automated machine setup as well as test automation.<br />
<br />
;Benefits<br />
: External automation tools such as Ansible could control ReactOS machines<br />
: Automated testing could make use of WinRM, both in VMs and on real hardware.<br />
<br />
;References<br />
: [https://msdn.microsoft.com/en-us/library/aa384426(v=vs.85).aspx MSDN: Windows Remote Management]<br />
: [https://msdn.microsoft.com/en-us/library/aa384470(v=vs.85).aspx MSDN: WS-Management Protocol]<br />
: [http://www.dmtf.org/standards/published_documents/DSP0226_1.1.pdf WS-Management Specification]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Familiarity with Win32 APIs and Networking<br />
: Familiarity with web service development, e.g. HTTP, SOAP, XML<br />
<br />
=== Integrating SMB into ReactOS ===<br />
'''Useful for:''' End-users and developers<br />
<br />
SMB/CIFS is omnipresent for file sharing under Windows. It's one of the features new users to ReactOS always expect and then cannot find anywhere. <br />
<br />
As such, ReactOS finally needs an implementation of SMB properly integrated into the operating system. SMB heavily relies on RPC and UNC paths and previous work in both areas exists. A potential developer should base the work on the mature Samba Open-Source implementation of SMB. However, Samba is developed for UNIX systems and therefore parts of its code require careful porting to create a native implementation for ReactOS.<br />
<br />
;Benefits<br />
: Having SMB would highly improve ReactOS' abilities to transfer files over the network, both for users and developers! It would also lay the groundwork for other Windows network services such as Printer Sharing.<br />
<br />
;References<br />
: [https://wiki.samba.org/index.php/Main_Page Samba Wiki]<br />
: [https://msdn.microsoft.com/en-us/library/cc246231.aspx MS-SMB Server Message Block (SMB) Protocol Open Specification] (and related ones on this site) <br />
: [http://freecode.com/projects/samba-tng Samba-TNG] ([http://web.archive.org/web/20140704112636/http://freecode.com/projects/samba-tng archive]) was an effort to rewrite unix samba libraries into a more NT like architecture. They already work in Windows/ReactOS, archival copies are available here [http://encodedpr.com/files/reactos/source%20code/samba-tng-0.5-rc1.zip source] and [http://encodedpr.com/files/reactos/tools/samba-tng-0.5-rc1_bin.zip binaries]. There is even a [https://www.youtube.com/watch?v=UhFIgSIKPOU video] of how to use it.<br />
: [http://wiki.samba-tng.org/ Samba-TNG Wiki] ([http://web.archive.org/web/20160323191842/https://wiki.samba-tng.org/doku.php/start archive])<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Familiarity with Win32 APIs and Networking<br />
: Experience with gluing code of different projects together<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Terminal Services ===<br />
'''Useful for:''' End-users and developers<br />
<br />
Implement support for terminal services, allowing inbound remote desktop connections to ReactOS. This encompasses implementation of input and video drivers to handle output over the network.<br />
<br />
The terminal services system provides functionality for securely connecting remote clients and servers, for channeling communication between components of remote clients and servers, and for managing servers. It implements the Remote Desktop Protocol (RDP) which is a multi-channel protocol that allows users of a remote client to connect to a server over a network.<br />
<br />
;Benefits<br />
: Terminal services support would allow ReactOS to serve as a terminal server/thin client server. Organizations that wish to provide a shared workstation with Windows would have a free alternative that does not have complex licensing terms covering multi-session usage. The display driver for terminal services can also be used to support fast user-switching and even possibly multi-monitor support.<br />
<br />
;References<br />
: [[ReactOS Terminal Services]]<br />
: https://github.com/FreeRDP/FreeRDP/wiki<br />
<br />
;Skills needed<br />
: Network development experience.<br />
: Driver development experience.<br />
: Knowledge/familiarity with RDP protocol.<br />
<br />
== Audio/Video ==<br />
=== Get video drivers from AMD/ATI/NVIDIA running stable ===<br />
As of today, most original drivers from GPU manufacturers do not work at all or only very unstable. Because of that, even our "demo laptop" (a Dell D531) with its ATI Radeon Xpress X1270 is very slow. This project is for getting such a driver up and running in a stable manner. The first step would be to fix the bugs in the PnP manager (e.g. as https://jira.reactos.org/browse/CORE-14464) - some patches are already around (e.g. vgal's ones). Then the base driver needs to get running more stable - which will involve fixes e.g. in win32k (e.g. more parameter checks) or other components (which emit wrong parameter). As extras, the OpenGL part could be tried.<br />
<br />
;References<br />
: Reported bugs for the ATI driver: https://jira.reactos.org/browse/CORE-14479?jql=labels%20%3D%20ATI<br />
: ATI Driver: https://mifritscher.de/austausch/reactos/R163694.EXE<br />
<br />
;Benefits<br />
: A much faster demo laptop<br />
: Support for a major vendor of GPUs<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Experience with hardware drivers<br />
: As a plus: Experience with the video stack<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Intel High Definition Audio Bus Driver ===<br />
Implement support for the Intel High Definition Audio specification for sound cards. ReactOS has the beginnings of the HD Audio Bus driver but it needs to be completed and tested.<br />
<br />
;Benefits<br />
: Modern audio cards use the Intel High Definition Audio specification. Therefore they rely on a bus driver to communicate with the audio hardware. The goal is to complete the bus driver which supports those new cards. The driver needs to work on a Microsoft NT system, and be ready to support ReactOS now or in the future.<br />
<br />
;References<br />
: Existing hdaudbus driver: https://github.com/reactos/reactos/tree/master/drivers/wdm/audio/hdaudbus<br />
: HD Audio Device Driver Interface whitepaper: http://msdn.microsoft.com/en-us/windows/hardware/gg462966<br />
: Programming the HD Audio DDI: http://msdn.microsoft.com/en-us/library/ff536442%28v=vs.85%29.aspx<br />
: HD Audio Bus Drivers: http://msdn.microsoft.com/en-us/library/ff536434%28v=vs.85%29.aspx<br />
<br />
;Skills needed<br />
: Kernel driver programming experience<br />
: Bus driver programming experience<br />
: Familiarity with Intel HD Audio specification<br />
: Audio kernel streaming<br />
<br />
=== Audio Mixer ===<br />
Implement support for mixing of audio streams.<br />
;Benefits<br />
: An audio mixer is responsible for routing of multiple audio streams. This would be very beneficial to ReactOS as audio driver support has improved yet the use of these drivers is limited by the lack of an audio mixer. At the end of the project multiple audio streams should be able to be played at the same time.<br />
<br />
;References<br />
: [http://msdn.microsoft.com/en-us/library/ms705739(v=vs.85).aspx Audio Mixer Reference]<br />
: [http://www.microsoft.com/downloads/en/details.aspx?FamilyID=D7667686-8467-4B10-8713-BF0281536320&amp%3Bdisplaylang=en DirectKS Sample Application download]<br />
: [http://msdn.microsoft.com/en-us/library/ms685967%28v=VS.85%29.aspx Programming Services]<br />
: "Secret Rabbit Code" (SRC) [http://www.mega-nerd.com/SRC/ Sample Rate Converter] aka libsamplerate<br />
<br />
;Skills needed<br />
: Windows Services familiarity<br />
: Basic Audio file format familiarity<br />
: Audio mixing algorithms / libraries familiarity<br />
: Basic kernel streaming familiarity<br />
<br />
== Durability ==<br />
=== Kernel mode test suite ===<br />
'''Useful for:''' Developers<br />
<br />
Improve our existing kernel mode test suite (created by a previous successful GSoC student) by adding comprehensive new tests in areas previously untouched by the test suite such as the kernel caching APIs and PnP. The goal is to extensively test Native API functions exported by the kernel. Reference behavior could be checked by running the test suite against the corresponding Windows operating system.<br />
<br />
;Benefits<br />
: Improved system stability.<br />
: More information about undocumented behavior.<br />
: Improved compatibility with third party drivers.<br />
<br />
;Skills needed<br />
: Native API knowledge<br />
: NT driver development skills<br />
<br />
=== Win32k test suite ===<br />
'''Useful for:''' Developers<br />
<br />
Right now we have basically no tests that cover the win32k module. As win32k is the cornerstone of the interface between the Win32 Subsystem and the display drivers, lack of tests leads to inconsistency, guesswork and frustration when it comes to improving driver compatibility.<br />
A virtual display driver (à la kmtest.sys) allows us to test the functionality and behavior of win32k. If time permits, it would also be possible to add a mechanism to test videoprt.sys functionality, and the relationship between a display driver and its miniport counterpart.<br />
<br />
;References<br />
: [http://msdn.microsoft.com/en-us/library/windows/hardware/ff570585%28v=vs.85%29.aspx Windows 2000 display driver model reference]<br />
<br />
;Benefits<br />
: Improved stability.<br />
: More information about undocumented behavior.<br />
: Improved compatibility with third party drivers.<br />
<br />
;Skills needed<br />
: Display drivers development experience<br />
: Win32 API knowledge<br />
<br />
== Shell Enhancements ==<br />
=== Modern Start Menu ===<br />
ReactOS has the classic start menu implemented, which works well but is somewhat limited.<br />
<br />
Implementing the modern start menu would bring us such goodies as pinned Applications, default places and maybe also a search field.<br />
<br />
;Benefits<br />
: A more comfortable browsing experience for applications and places<br />
: Some more freedom of choice, regarding look and feel, for the user<br />
<br />
;References<br />
: https://jira.reactos.org/browse/CORE-9277<br />
: FIXME: Someone please add a link to the great shell documentation map by Giannis<br />
<br />
;Skills needed<br />
: Development in C/C++ and under Windows<br />
: COM knowledge<br />
<br />
=== Implement iernonce.dll ===<br />
ReactOS is able to launch commands, once the explorer started, just for one single time.<br />
This is executed silently and the progress is hard to track.<br />
<br />
The graphical alternative would show which command runs at the moment and give the user some kind of feedback.<br />
<br />
;Benefits<br />
: A better possibility to add bundled Software<br />
: A better optical feedback for the user<br />
<br />
;References<br />
: http://robhaupt.blogspot.com/2008/07/using-runonceex.html<br />
: https://jira.reactos.org/browse/CORE-7194<br />
<br />
;Skills needed<br />
: Development in C/C++ and under Windows<br />
: COM knowledge<br />
<br />
== System Enhancements ==<br />
=== Integrating a modern C++ standard library ===<br />
To attract new developers, speed up development and make it less error-prone, the ReactOS Project wants to leverage the features of modern C++.<br />
This requires a C++ standard library supporting at least C++11 and C++14.<br />
However, ReactOS currently uses an unspecified version of GNU libstdc++ when built with GCC and the largely unmaintained ''stlport'' when built with MSVC. This limits us to C++98 features, and having two libraries is the root cause for many subtle problems.<br />
<br />
As ReactOS is one of the few operating systems, which can be built with both GCC and MSVC (and possibly Clang in the future), we need a modern C++ standard library that is compatible with all of them.<br />
Candidates are [https://libcxx.llvm.org/ LLVM libc++] and Microsoft's [STL https://github.com/microsoft/STL/].<br />
Being an operating system, the standard library also needs to be integrated into our source tree and built through CMake.<br />
<br />
In this task, the student shall evaluate both C++ standard libraries regarding features, compatibility with our compilers, and required customizations.<br />
The student shall then proceed to integrate it into our source tree and get it to build together with the rest of our code.<br />
Some of our few current C++ applications may need minor fixes for that.<br />
<br />
Note that LLVM's libc++ and Microsoft's STL are just two C++ standard libraries we found.<br />
Any other library under an OSI-approved license is welcome as well.<br />
<br />
;Benefits<br />
: Accelerating ReactOS development by attracting more C++ developers and easing the work for the existing ones<br />
: Fixing a lot of subtle bugs due to the current usage of two different C++ standard libraries<br />
<br />
;References<br />
: [https://libcxx.llvm.org/ LLVM libc++]<br />
: [https://github.com/microsoft/STL/ Microsoft STL]<br />
: [https://github.com/reactos/reactos/tree/master/sdk/lib/3rdparty/stlport stlport in our current source tree]<br />
: [https://github.com/reactos/reactos/tree/master/sdk/lib/cpprt cpprt in our current source tree]<br />
<br />
;Skills needed<br />
: Development in C++, including modern C++11 and C++14, down to the runtime level<br />
: Knowledge about the CMake build system<br />
: Basic debugging skills<br />
<br />
<br />
=== UI Automation API ===<br />
Accessibility is an important part of any operating system. Windows supports internal and external accessibility tools using its Automation API.<br />
<br />
Adding support for these (currently completely absent) APIs to ReactOS would set the foundation for an OS usable by everyone. One approach for a project may be attempting to get the open source screen reader software "NVDA" to run on ROS.<br />
<br />
Parts of this work may be suitable for submission to Wine, which would extend the usefulness beyond just ReactOS as well as simplify future maintenance of those components.<br />
<br />
;Benefits<br />
: Applications depending on these features may start to work in ReactOS<br />
: Adding support for accessibility shows that we care about all our users<br />
<br />
;References<br />
: [https://msdn.microsoft.com/en-us/library/windows/desktop/dd561932(v=vs.85).aspx Windows Automation API Overview]<br />
: [https://msdn.microsoft.com/en-us/library/windows/desktop/ee684009(v=vs.85).aspx MSDN: UI Automation]<br />
: [https://www.nvaccess.org/ NVDA Screen Reader]<br />
<br />
;Skills needed<br />
: Development in C/C++ and under Windows<br />
: COM knowledge<br />
: Basic debugging skills<br />
<br />
<br />
=== Applications Manager Rapps ===<br />
'''Useful for:''' End-users<br />
<br />
[[RAPPS]] is a lightweight GUI utility which downloads and installs various popular apps and redistributable packages in Windows and ReactOS. It can be significantly improved in various ways to become a really useful tool for not only for ReactOS but for Windows users also who want to manage their installed applications like Steam manages games installation/updating.<br />
<br />
A list of possible features to be implemented:<br />
<br />
* Mainly:<br />
- document and improve support for command line parameters to RAPPS. For example: "rapps install chrome" (just like your favourite Linux distro package manager) or "rapps remove msvc2010_redist". Currently, RAPPS has very limited command line support.<br />
- Separate the download and install operations so that a user could choose just to download the apps into a local cache and install some or all of them later (just like Steam or NVidia's driver updaters first does Download then asks to Install, for example)<br />
- document and improve support of "automated installation" of simple apps by unpacking the archive they come in and execute a script inside it (if any) which creates shortcuts on the desktop<br />
<br />
<br />
<br />
* Optionally:<br />
- https://docs.google.com/document/d/1_SVqMk1VU75tjAnnE5oz20iU8fy5fQpPf5vwTf3bnEk/edit?usp=sharing<br />
<br />
;Skills needed<br />
: WinAPI<br />
: C/C++<br />
<br />
;Difficulty<br />
: From Low to Medium<br />
<br />
;Note<br />
This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
; Extras<br />
: A chance to work on an app potentially used by many people throughout the world<br />
: See article [[RAPPS]]<br />
<br />
=== Paravirtualization Support ===<br />
Virtual machines are increasingly common in all fields of computing. To increase VM performance, paravirtualization bypasses the emulation of traditional hardware (such as specific network or storage interfaces, or even the entire PCI bus) and uses specially crafted drivers in the guest OS to more directly interface with the hypervisor. The guest OS kernel can also be modified to directly interact with the hypervisor for CPU and memory management operations, leading to improved performance.<br />
<br />
There are many choices of projects in this space, such as:<br />
: Making Xen's open source drivers work in ReactOS<br />
: Creating an initial set of drivers to support "enlightenment" under Hyper-V<br />
: Enhance the kernel to make use of hypervisor functionality for low-level operations (e.g. via VMI)<br />
: Testing and integrating VirtIO drivers, VirtualBox Guest Additions and/or open-vm-tools into ReactOS<br />
: Implementing automatic hypervisor detection during setup or in the applications manager to simplify the installation of the appropriate VM guest drivers<br />
<br />
Note that these projects can vary greatly in difficulty. Please consult with a mentor to ensure your skill set and the scope of your proposal match up to make a realistic project.<br />
<br />
;Benefits<br />
: Avoid non-free or unavailable alternative drivers<br />
: Improved out-of-the-box functionality in virtual machines<br />
: Integration of kernel features that may improve VM performance<br />
<br />
;References<br />
: [https://www.xenproject.org/developers/teams/windows-pv-drivers.html Xen Windows PV Drivers]<br />
: [https://github.com/vmware/open-vm-tools open-vm-tools]<br />
: [https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Additions/WINNT VirtualBox Guest Additions]<br />
: [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/hv Linux Hyper-V drivers]<br />
: [https://lwn.net/Articles/175706/ The VMI virtualization interface]<br />
<br />
;Skills needed<br />
: Experience with the Hypervisor of your choice, and preferably its paravirtualization interface<br />
: Development in C and under Windows<br />
<br />
=== NT6 recycle bin support ===<br />
In a (much) older GSOC project recycle bin support was added for nt5 operating systems. Now it is time to add support for reading and writing in recycle bin created by more modern operating systems.<br />
<br />
;Note<br />
: This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
=== Improving the quality of our Registry Hive implementation ===<br />
ReactOS features a basic implementation of the Windows-compatible Registry Hive format for storing system and application settings.<br />
There are two major areas where our current implementation could be improved:<br />
# When ReactOS crashes, Registry Hives easily get corrupted and render the whole system unbootable. The reliability of the Registry Hive implementation shall be improved to make the effect of crashes less severe and also recover from partly corrupted Hives.<br />
# Hives created by our mkhive tool are roughly compatible with the Windows format. The only part that is currently missing are the implementation of Security Descriptors. Implementing these could make the tool more usable and improve interoperability between Windows and ReactOS.<br />
<br />
Related components in ReactOS are the cmlib library, the ntoskrnl Cm, and the mkhive tool.<br />
<br />
;References<br />
: "The Internal Structure of the Windows Registry", MSc Thesis by Peter Norris, BSc (Hons), MBCS: http://amnesia.gtisc.gatech.edu/~moyix/suzibandit.ltd.uk/MSc/<br />
: Offline NT Password and Registry Editor: http://pogostick.net/~pnh/ntpasswd/<br />
: Bug reports [https://jira.reactos.org/browse/CORE-6762 CORE-6762], [https://jira.reactos.org/browse/CORE-9195 CORE-9195] and [https://jira.reactos.org/browse/CORE-10793 CORE-10793].<br />
<br />
;Skills needed<br />
: Development in C<br />
: Kernel-mode development<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Performance Data Registry ===<br />
Access to performance data on Windows is done primarily through the registry API, accessing something known as the performance data hive. This hive does not exist as a genuine file but is in reality a collection of data exported by various OS components, drivers, services, and even applications. Many of the performance values provided through the performance data registry is not available in any other form. The absence of support for performance counters renders many diagnostic utilities from Microsoft broken and is also an impediment to application compatibility. Condor is an example of a third party application that uses the performance data registry for process and resource usage tracking.<br />
<br />
;Benefits<br />
: Besides application compatibility, the performance data registry is one of the most difficult to use public interfaces in Windows. The layout of its data structures makes querying and accessing values a highly manual process. Documentation produced from this effort would provide better guidelines for third parties to access the performance data registry and better use the information published by the system and Microsoft's own applications such as the .NET runtime or the IIS service.<br />
<br />
;References<br />
: Description of performance counters and types in Windows 2003: http://technet.microsoft.com/en-us/library/cc776490%28WS.10%29.aspx<br />
: Performance counter data structures: http://msdn.microsoft.com/en-us/library/aa373093%28v=VS.85%29.aspx<br />
: Example code for accessing performance data through registry: http://msdn.microsoft.com/en-us/library/aa373219%28v=VS.85%29.aspx<br />
<br />
;Skills needed<br />
: Registry API familiarity.<br />
: Performance registry structure familiarity.<br />
: Performance counter familiarity.<br />
<br />
=== Management Console ===<br />
Implement Microsoft Management Console (MMC). The MMC provides an interface for various management tools, both from Microsoft and third parties, called snap-ins. These snap-ins are standalone programs dynamically loaded into an MMC console to perform a specific configuration task, such as configuring a network or managing disk drives.<br />
<br />
;Benefits<br />
: Easier snap-ins development.<br />
: Consistent user interface of management tools.<br />
: One configurable place to access key management and configuration apps.<br />
<br />
;References<br />
: [http://msdn.microsoft.com/en-us/library/bb756943.aspx What is MMC]<br />
: [http://msdn.microsoft.com/en-US/library/bb756923.aspx Developing for MMC 3.0]<br />
: [https://github.com/learn-more/reactos/commits/mmc Some early work on MMC]<br />
<br />
;Skills needed<br />
: Basic Windows development experience.<br />
: Knowledge of COM.<br />
<br />
=== Xbox executable support ===<br />
ReactOS has an [[Xbox Port|original Xbox port]] but it can only run Windows applications and lacks the ability to run actual Xbox executable XBE files.<br />
<br />
A new non-Desktop variant of ReactOS for running Xbox games must be created to accomplish the task. This variant would be specifically meant to run on Xbox hardware, and would have to support Xbox kernel functionality.<br />
<br />
Specifically, the XBE loading must be implemented but probably also various other tasks related to memory management and more.<br />
<br />
;Benefits<br />
: Ability to run original Xbox games on your original Xbox (or in the XQEMU emulator) in a trusty and fully open-source environment<br />
: Attract new developers with low-level programming skills to the project<br />
<br />
;References<br />
: [[Run Xbox Games on ReactOS]]<br />
<br />
;Skills needed<br />
: Solid skills in C and Reverse-Engineering<br />
: Kernel-mode development experience would be a huge plus<br />
<br />
;Other requirements<br />
: Access to a physical Xbox, either:<br />
:* Softmodded original Xbox<br />
:* Hardmodded original Xbox<br />
:* Original Xbox hardware revision from 1.0 to 1.5 - this is required for dumping MCPX ROM for emulation. Revisions from 1.6 and higher are not recommended and harder to work with.<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
== Debugging Improvements ==<br />
=== PDB support for dbghelp ===<br />
Making it possible for our dbghelp read pdb files would improve our ability to debug ReactOS directly in user mode with tools like WinDbg, Process Explorer and more. We could also be able to have small tools for reporting crashes and translating addresses automatically.<br />
<br />
=== Cross-platform KD Debugger Implementation ===<br />
Microsoft's kd.exe and its GUI counterpart WinDbg allow kernel debugging Windows (and ReactOS) machines. Unfortunately these tools are Windows-only and proprietary.<br />
<br />
In order to broadly support the more advanced KD debugging protocol instead of the text-based KDBG we use in GCC builds, we need cross-platform versions of these tools.<br />
<br />
;Benefits<br />
: Support for debugging on additional hardware platforms<br />
: Improved debugging speed, easier and more reliable setups<br />
<br />
;References<br />
: [https://www.reactos.org/wiki/Techwiki:Kd ReactOS wiki: KD]<br />
: [https://github.com/radare/radare2/issues/1246 Radare2 ticket for KD support] (links to much existing work and documentation)<br />
<br />
;Skills needed<br />
: Software Development in C/C++<br />
: Kernel Debugging experience<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Support for Additional KD Transports ===<br />
ReactOS debugging is currently most effective when using a serial port. Many real hardware systems no longer have serial ports, leaving on-screen debugging as the only viable alternative.<br />
<br />
Windows supports debugging via the KD protocol using transport mediums other than serial lines: 1394, USB3, ethernet, and the undocumented KDVM protocol supported by Hyper-V and other Hypervisors. ReactOS should be made compatible with these additional transport providers, and open source versions of these providers should be created.<br />
<br />
;Benefits<br />
: Support for debugging on additional hardware platforms<br />
: Improved debugging speed, easier and more reliable setups<br />
<br />
;References<br />
: [https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-1394-cable-connection MSDN: 1394 Debugging]<br />
: [https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-network-debugging-connection MSDN: Network Debugging]<br />
: [https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-usb-3-0-debug-cable-connection MSDN: USB3 Debugging]<br />
: [https://www.osr.com/nt-insider/2015-issue2/kdnet-debugging/ OSR: KDNET Debugging]<br />
: [https://github.com/reactos/reactos/tree/master/drivers/base/kdcom Existing KDCOM transport dll]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Kernel Development and Debugging experience<br />
<br />
=== Crash Dump Support ===<br />
When Windows crashes, it writes a memory dump file that can be used for analyzing the crash later. This allows detailed analysis of the problem even if kernel debugging is not set up, and also makes it possible for an expert to investigate on their own computer after the fact.<br />
<br />
;Benefits<br />
: Detailed information about crashes without requiring the user to perform kernel debugging<br />
: Possibility of automatic crash reporting<br />
<br />
;References<br />
: [https://techcommunity.microsoft.com/t5/Ask-The-Performance-Team/Understanding-Crash-Dump-Files/ba-p/372633 Blog post: Understanding Crash Dump Files]<br />
: [https://crashdmp.wordpress.com/ Exploring the Microsoft Windows crash dump stack]<br />
: [https://msdn.microsoft.com/en-us/library/ms939593.aspx MSDN: Dump File Format (Windows CE)]<br />
: [http://computer.forensikblog.de/en/2006/03/dmp-file-structure.html Blog post: DMP file structure]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Kernel Development and Debugging experience<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
== User-mode APIs ==<br />
=== Implement NTLM authentication provider in secur32.dll ===<br />
At this point, ReactOS requires a 3rd-party package (Samba) for NTLM auth which is required for some apps (most notably, Office 2010).<br />
Implementing NTLM (and other providers, possibly) will improve out-of-the-box experience of ReactOS.<br />
<br />
;Benefits<br />
Office 2010 and a lot of other apps will work without hacks<br />
<br />
;Skills needed<br />
: Software Development in C/C++ and under Windows<br />
: Win32 API knowledge<br />
: Basic debugging skills<br />
: Basic understanding of how NTLM protocol works<br />
<br />
;References<br />
: See [https://jira.reactos.org/browse/CORE-12601 CORE-12601] ticket for additional information about this task<br />
: [https://reactos.org/blogs/word-2010-support-weekly-report-part4-update-authentication-failed Word 2010 support weekly report - Part 4]<br />
: Branch [https://github.com/reactos/reactos/commits/sspi-bringup "sspi-bringup"] where this work was been started in 2011<br />
: [https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-NLMP/%5BMS-NLMP%5D.pdf NT LAN Manager (NTLM) Authentication Protocol]<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Fixing function Control_RunDLLW in shell32.dll ===<br />
There is the problem in shell32!Control_RunDLLW. There are several failing tests for that.<br />
It is available to anyone feeling like fixing a function that parses a string and tokenizes it.<br />
<br />
;Benefits<br />
Ability to start 3rd party applets from Control Panel<br />
<br />
;Skills needed<br />
: Software Development in C/C++ and under Windows<br />
: Win32 API knowledge<br />
: Basic debugging skills<br />
<br />
;Note<br />
This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
;References<br />
: https://jira.reactos.org/browse/CORE-8981<br />
: https://git.reactos.org/?p=reactos.git;a=blob;f=dll/win32/shell32/wine/control.c;hb=5f11c16ca87bdb6528462198a2a5ef284678c7e7#l873<br />
: https://www.reactos.org/testman/detail.php?id=40923363&prev=0<br />
<br />
=== Microsoft Delta Compression API (mspatcha.dll) ===<br />
Multiple application installers require the ApplyPatchToFileW function from mspatcha.dll (Microsoft Delta Compression API) to be implemented.<br />
<br />
Delta Compression is a differential compression technology developed by Microsoft. While it has mainly been used for Windows Updates, Delta Compression offers other uses as well.<br />
A basic implementation of this is present, but it needs a lot of work and investigation to better support patch files.<br />
Most flags and options are currently hard-coded based on a fixed set of test files.<br />
<br />
A first step would be to create more tests, using various options and bigger inputs / outputs,<br />
and optionally find real-world 'patch' files that can be included in the tree (check the license!).<br />
This should result in a better understanding of the patch file format.<br />
<br />
The next step would be to actually implement the code to support the extra options in our mspatcha.dll<br />
<br />
One **big** unknown is the compression used, which is based on lzx.<br />
The compression used in SQL Express 2008 does not seem to decompress with the current lzx implementation.<br />
At the moment it is unknown if this is due to the lack of understanding of the patch format, or because lzx needs some patches.<br />
<br />
;Benefits<br />
Ability to natively install Acrobat Reader 11, MS SQL Express 2008 and many other apps that rely on Microsoft Delta Compression API<br />
<br />
;Skills needed<br />
: Software Development in C or C++ and under Windows<br />
: Basic debugging skills<br />
: Basic Win32 API knowledge<br />
: Knowledge about / understand of compression<br />
: Knowledge about binary file formats<br />
<br />
;Note<br />
This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
;References<br />
: https://docs.microsoft.com/en-us/previous-versions/bb417345(v=msdn.10)<br />
: https://blogs.msdn.microsoft.com/jmstall/2006/11/07/binary-patching-tools-mspatcha-mspatchc/<br />
: https://bugs.winehq.org/show_bug.cgi?id=12501<br />
: https://jira.reactos.org/browse/CORE-8550<br />
: https://jira.reactos.org/browse/CORE-15417<br />
<br />
== Win32 Subsystem ==<br />
<br />
=== Multi-Monitor Support ===<br />
Implementation of multi-monitor support has been almost nonexistent until now. Display device drivers expose them thanks to the HwVidGetVideoChildDescriptor callback, which videoprt.sys uses to enumerate monitors attached to it then to pass the information to win32k.sys. It is then the role of win32k.sys to make the link between the two (or more) monitors, either cloning or extending the desktop and exposing the relevant features to client applications.<br />
<br />
;Benefits<br />
: Multi-monitor support would allow ReactOS to become a serious player in professional desktop applications given the increasing number of double-screen installations present in modern workspaces. Document comparison, permanently visible e-mail reader or presentation applications are just a few benefits professionals get when using multiple monitors.<br />
: Multi-Monitor support would also find its place in the casual computing experience. Writing e-mails while watching a movie, or chatting with friends about current football play are things people do in the 21st century!<br />
: From a technical standpoint, properly supporting this feature would improve driver support and WIN32 application compatibility for APIs such as EnumDisplaySettings.<br />
<br />
;References<br />
: http://msdn.microsoft.com/en-us/library/windows/desktop/dd145071%28v=vs.85%29.aspx<br />
: http://msdn.microsoft.com/en-us/library/ff569172%28v=VS.85%29.aspx<br />
: http://www.vesa.org/<br />
: [https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/xpdm/VBoxMPDriver.cpp Virtualbox video driver source]<br />
<br />
;Skills needed<br />
: Experience with Windows display drivers.<br />
: Experience with WINAPI, especially gdi32/user32.: Experience with PnP, as this feature would require detection of connected monitors: Experience with EDID/VESA standards.<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== User mode printer driver support ===<br />
One of the last parts of the printer stack that is missing from printing support is support for user mode printer drivers (renderers). The scope of this project is to implement support for user mode printer drivers in the window manager (win32k).<br />
<br />
;Note<br />
: This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
=== Multi-Session Support ===<br />
Supporting multiple sessions is a prerequisite for Terminal Services.<br />
<br />
;Note<br />
: This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
<br />
[[Category:Google Summer of Code]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Google_Summer_of_Code_2020&diff=50168Google Summer of Code 20202020-02-07T07:14:17Z<p>Colin Finck: /* Our Potential Mentors */ Add the developers from FOSDEM, who all agreed to be potential mentors</p>
<hr />
<div>[[File:GSoC-logo2016.png|frameless|center|600px|link=https://summerofcode.withgoogle.com/organizations/5144807102480384/]]<br />
<br />
== What is GSOC? ==<br />
Google Summer of Code is a global program focused on bringing more student developers into open source software development. Students work with an open source organization on a 3-month programming project during their break from school. [[Google_Summer_of_Code_2020#How_To_Apply| How to apply?]]<br />
<br />
<!-- Commented out; accepted students are now listed<br />
<br />
== Potential Students ==<br />
This is the list of potential students who want to participate in ReactOS GSoC 2020. The list is maintained by the community and interested students, and does not reflect official developers position or opinion.<br />
<br />
Your official proposals should be sent via Google's GSoC interface, details are described below.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Student !! Area of interest !! Links & Contacts !! Small contribution<br />
|-<br />
|}<br />
<br />
--><br />
<br />
== Accepted Projects ==<br />
<br />
{| class="wikitable"<br />
|-<br />
! Project !! Student !! Nick in Mattermost !! Mentor(s)<br />
|-<br />
|}<br />
<br />
== How To Apply ==<br />
See the [[Google Summer of Code 2020 Ideas]] page for more information.<br />
<br />
=== Get familiar with the code ===<br />
Every student new to ReactOS should begin by obtaining the code through our [https://github.com/reactos/reactos GitHub] repository and performing a first build using our [https://www.reactos.org/wiki/ReactOS_Build_Environment build environment]. This environment ensures consistent build results, eliminates the need to set up your own toolchain and makes ReactOS one of the easiest operating systems to build.<br />
<br />
Creating a fork of the ReactOS repository on GitHub is recommended for most students. This enables the use of branches and pull requests for contributions.<br />
<br />
=== Make a small contribution === <br />
Before your application can be accepted, it is expected that you submit a patch proposing a code change to the project, and work through the process of getting it merged into the master branch. Check out the [https://jira.reactos.org/issues/?filter=14803 starter-project label] on JIRA for some ideas of what to work on. You are not required to complete these steps in solitude, and we are happy to help with any part of the process if asked. Please note that while translations, documentation or comment fixes are an easy way to validate your workflow, they do not count toward this requirement.<br />
<br />
Go through [[Development Introduction]] to get started with your contribution.<br />
<br />
=== Reach out ===<br />
Effective communication is a key requirement for a successful project. Students should subscribe to the [http://www.reactos.org/mailman/listinfo/ros-dev ros-dev] mailing list and optionally could join the [https://chat.reactos.org/reactos/channels/development Development channel] on our Mattermost chat server for a live discussion with developers. There is also [irc://irc.freenode.net/#reactos-dev #reactos-dev] channel on Freenode’s IRC network which is bridged with the development channel, but mattermost is preferred.<br />
<br />
'''Please ensure you've discussed your proposal with a project member on the chat or on the mailing list before final submission. The developers will have invaluable feedback regarding your project's scope and your approach to it, and your proposal is unlikely to succeed without that feedback.<br />
'''<br />
<br />
=== Fill out your application ===<br />
See the [[#Student Application Form|Student Application Form]] below.<br />
<br />
=== Read the documentation ===<br />
MSDN and plenty of available Windows publications serve as the primary reference for functionality ReactOS seeks to implement. However, there are parts of Windows that are poorly documented or completely undocumented. In these instances, the ReactOS [[Techwiki]] may possess descriptions of the data structures or interfaces. If no documentation exists, students may have to conduct their own research and document the results – following project guidelines on respecting intellectual property. Our mentors can help guide this research process.<br />
<br />
== Our GSoC Adminstrators ==<br />
* [[Colin Finck]]<br />
* [[Amine Khaldi]]<br />
<br />
== Our Potential Mentors ==<br />
* [[Giannis Adamopoulos]]<br />
* [[Hermes Belusca-Maito]]<br />
* [[Mark Jansen]]<br />
* [[Timo Kreuzer]] (former GSoC Student)<br />
* [[Victor Perevertkin]] (former GSoC Student)<br />
<br />
== Student Application Form ==<br />
Students apply via the [https://summerofcode.withgoogle.com/ Google Summer of Code web site].<br />
Please see the information found there about how GSoC works for students, the timeline, and other details.<br />
<br />
=== General Information ===<br />
* '''Full Name'''<br />
* '''Languages You Speak'''<br />
* '''Timezone'''<br />
* '''ReactOS website Account Name'''<br />
* '''IRC Nickname on Freenode'''<br />
<br />
=== Time Commitment ===<br />
You are required to outline any additional obligations you may have during the summer and how much of your time you will be able to commit to your GSoC project.<br />
Failure to do so will result in a rejection of your application.<br />
<br />
=== Proposed Project ===<br />
Please provide a brief description, in your own words, of the project you are interested in<br />
<br />
=== Proposed Milestones ===<br />
Please propose milestones that can be used to gauge progress on the project.<br />
<br />
=== Legal Requirements ===<br />
Students are required to affirm that the following is true.<br />
I hereby swear that I have not used nor seen the source code to any version of the Windows operating system nor any Microsoft product that may be related to the proposed project that is under a license incompatible with contribution to ReactOS, including but not limited to the leaked Windows 2000 source code and the Windows Research Kernel.<br />
<br />
== FAQ ==<br />
;What criteria did you use to select the individuals who will act as mentors for your organization?<br />
<br />
Our mentors were selected based on availability and familiarity with various parts of the NT architecture including but not limited to networking, filesystems, graphics, the registry, and hardware interfaces. In addition we place emphasis on the ability of a developer to act in a teaching role, who know how to guide students but provide enough freedom to allow the student to explore and learn how to achieve their goals through their own efforts. We will also encourage our mentors to be available to not just their assigned students but also other students that have projects under ReactOS. Many of our mentor candidates are knowledgeable about a wide range of topics and can provide advice for topics beyond their assigned student’s project.<br />
<br />
;What is your plan for dealing with disappearing students?<br />
<br />
While every effort will be made to select students who are unlikely to disappear, we recognize that unpredictable circumstances are always possible. As such, we will require that all students provide backup contact information that we will verify as a failsafe in case students drop out of contact and are unable to inform us directly. Based on the situation, we will try to work with the student to accommodate any special circumstances that arise to ensure a project’s success, but if a student is unable to complete their project we will contact the GSoC team to consider any necessary actions, including marking a project as failed.<br />
<br />
;What is your plan for dealing with disappearing mentors?<br />
<br />
While the mentor candidates we have selected are considered highly reliable, we again recognize that life can result in unexpected circumstances. As noted above, the mentor candidates we have selected are knowledgeable in more than just one specific part of Windows NT, and we will encourage students to consult with not just their assigned mentor but also others taking part in the GSoC program. As such, students will always have advisers available to them even if their assigned mentor is unable to continue with the project thanks to the fact that pretty much all our active contributors are wide-coverage developers.<br />
<br />
;What steps will you take to encourage students to interact with your project's community before and during the program?<br />
<br />
Students whose projects are selected will be introduced to the greater ReactOS community by their mentors. They will also be put in touch with several community members that are actively engaged in regression and feature testing, whom will be invaluable in helping students find a wider audience for testing their code. Students will also be required to provide status updates to the community, which will provide opportunities for feedback and further engagement. Even after a project is completed, a student will have learned a great deal about Windows development and will know that the ReactOS project is available as a resource for any future development work they may pursue on Windows.<br />
<br />
;Besides my mentor, who else is available to help me?<br />
<br />
Besides developers not directly involved as mentors, we encourage all of our mentors to interact with students. As such, consider any mentor or developer as a resource to field questions and help as needed.<br />
<br />
[[Category:Google Summer of Code]]<br />
[[Category:Community]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=FOSDEM_2020&diff=50042FOSDEM 20202020-01-29T07:29:30Z<p>Colin Finck: /* Who visits and when */</p>
<hr />
<div><!-- !!! To be edited only by relevant ReactOS team members !!!--><br />
<br />
Date: '''1 & 2 February 2020'''. (ReactOS stand on '''Sunday only''')<br />
<br />
Location: Brussels, Belgium<br />
<br />
https://fosdem.org/2020/news/2019-11-19-accepted-stands/<br />
https://fosdem.org/2020/stands/ <br />
<br />
'''Building K (level 1, group A), stand 10 (Sunday)'''<br />
<br />
== Hotel ==<br />
Where to stay for ReactOS staff?<br />
<br />
<br />
<br />
== Who visits and when ==<br />
<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Days<br />
! Travelling to the event<br />
! Place to stay<br />
! Interested in shared aptmt<br />
! ETA<br />
|-<br />
|Timo Kreuzer<br />
|Fr-Su<br />
|By plane<br />
|AirBnb?<br />
|yes<br />
|<br />
|-<br />
|Colin Finck<br />
|Fr-Su<br />
|By train<br />
|Airbnb<br />
|yes<br />
|19:35 (Bruxelles-Midi)<br />
|-<br />
|Alexander Rechitskiy<br />
|probably Fr evening until Su<br />
|By plane<br />
|AirBnb?<br />
|yes<br />
|<br />
|-<br />
|Mark Jansen<br />
|Probably Fr evening until Su (or monday morning?)<br />
|By train<br />
|?<br />
|yes<br />
|<br />
|-<br />
|Victor Perevertkin<br />
|Probably Fr until Su<br />
|By plane<br />
|?<br />
|yes<br />
|11:20 at airport<br />
|-<br />
|Giannis Adamopoulos<br />
|Fr until Su<br />
|By plane<br />
|AirBnb?<br />
|yes<br />
|<br />
|-<br />
|Hermès Bélusca-Maïto<br />
|Fr evening until Su<br />
|By plane<br />
|Hotel<br />
|no<br />
|<br />
|-<br />
|<add yourself here><br />
|?<br />
|?<br />
|?<br />
|?<br />
|?<br />
|}<br />
<br />
== Checklist ==<br />
# Badges for ReactOS crew.<br />
#Information sheets to give out to.<br />
#CDs\USBs with ReactOS 0.4.whatever or TRUNK.<br />
#"Souvenirs" - some things? order it? where? <br />
<br />
<br />
[[Category:Community]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=FOSDEM_2020&diff=49724FOSDEM 20202019-11-25T07:17:52Z<p>Colin Finck: /* Who visits and when */</p>
<hr />
<div><!-- !!! To be edited only by relevant ReactOS team members !!!--><br />
<br />
Date: 1 & 2 February 2020. (ReactOS stand on Sunday only)<br />
<br />
Location: Brussels, Belgium<br />
<br />
https://fosdem.org/2020/news/2019-11-19-accepted-stands/<br />
https://fosdem.org/2020/stands/ <br />
<br />
Building ? (level ?, group ?), stand ?<br />
<br />
== Hotel ==<br />
Where to stay for ReactOS staff?<br />
<br />
<br />
<br />
== Who visits and when ==<br />
<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Days<br />
! Travelling to the event<br />
! Place to stay<br />
! Interested in shared aptmt<br />
|-<br />
|Timo Kreuzer<br />
|Sa/Su<br />
|By plane<br />
|AirBnb?<br />
|yes<br />
|-<br />
|Colin Finck<br />
|probably Fr evening until Su<br />
|By train<br />
|?<br />
|yes<br />
|-<br />
|<add yourself here><br />
|?<br />
|?<br />
|?<br />
|?<br />
|}<br />
<br />
== Checklist ==<br />
# Badges for ReactOS crew.<br />
#Information sheets to give out to.<br />
#CDs\USBs with ReactOS 0.4.whatever or TRUNK.<br />
#"Souvenirs" - some things? order it? where? <br />
<br />
<br />
[[Category:Community]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=ReactOS_Git_For_Dummies&diff=49664ReactOS Git For Dummies2019-11-05T17:52:16Z<p>Colin Finck: /* Workflow */</p>
<hr />
<div>== Introduction ==<br />
=== Basic Git concepts ===<br />
Lots of information here, take it slowly!<br />
<br />
* '''Commit:''' A commit in git contains information about a set of changes to the code. It represents the same information you could see in a patch/diff file, but in an internal binary representation. Notably, a commit has some values we care about:<br />
** Hash: A SHA1 (for now) hash computed from all the data and metadata included in the commit.<br />
** Message: The first line, or 80 characters of the first line, are considered the summary, and the rest is usually shown separately.<br />
** Author: The name+email of the person that wrote the patch.<br />
** Committer: The name+email of the person that applied the patch.<br />
** Parent(s): In a standard commit, there will be one parent, represented as its commit hash. In a merge commit (see below), it would have two parents.<br />
* '''Branching:''' A git branch is merely an entry in the repository that has a HEAD property, pointing to the commit hash of the newest commit in the branch. The commit operation implicitly assigns the new hash to the branch&rsquo;s head. This gives git an extremely fast branching system, turning them into a very effective tool for managing contributions.<br />
* '''Merging:''' When two branches are merged, a new commit is created, which contains all the data necessary to apply the changes from one branch, onto the other. This is represented in the metadata by a commit with two parents. Parent 1 represents the primary source of code, and parent 2 the &ldquo;other&rdquo; branch that is being merged. Git does not distinguish between merging from master into a work branch, or from a work branch to master, in both cases a merge is &ldquo;A=A+B&rdquo; with A being the currently checked out branch, and B the chosen target to merge from. The downside of merge commits is that they can &ldquo;dirty&rdquo; the history, when merge commits pile up one after another.<br />
* '''Commit:''' A git commit encodes the modified files, along with a commit message, and authorship information, into the internal representation. The commit&rsquo;s hash is then assigned to the branch head in the local repository.<br />
* '''Clone:''' In git, everyone works based on a full copy of the history. The action of creating this copy from a remote repository into your computer, is called cloning.<br />
* '''Remotes:''' A git remote tells git about a repository in another computer (for most of us, this will be GitHub&rsquo;s servers), where you will be fetching from and/or pushing to. You can have as many remotes as you need, and with any names you want, but the most commons are named &ldquo;origin&rdquo; for your personal fork, and &ldquo;upstream&rdquo; for the repository that you are contributing to.<br />
* '''Fetch:''' In order to retrieve new commits from a remote, the fetch operation computes what data you are missing, and sends back all the compressed objects and metadata you need in order to replicate the rest of the history. This data is accessible from special branches, with names such as &ldquo;remotes/origin/master&rdquo;, where &ldquo;origin&rdquo; is the name of the remote you assigned when setting up the repository, and &ldquo;master&rdquo; is the name of the branch in the remote repository.<br />
* '''Checkout:''' Checking out is the operation of extracting the data at the state represented by the given branch/commit, and making it available in the working copy. Unlike SVN, git does not like performing a checkout with modified files, and stashing is often required.<br />
* '''Stashing:''' Git has the ability to save local modifications as patches in an internal &ldquo;stash&rdquo;. It is a common thing to stash changes before you update the working copy, and &ldquo;pop&rdquo; from the stash when you are done, to return to the previous state or apply the changes to a different branch.<br />
* '''Pull:''' You will inevitably come across tutorials and examples using the pull command. This is a combined utility command that performs a fetch operation of the selected branch, and immediately after, a merge operation from the remote branch, to the selected branch. We don&rsquo;t recommend using pull, but rather to use fetch and rebase.<br />
* '''Push:''' The reverse operation to pull. It computes the required data and sends it to the remote repository, subsequently updating the remote&rsquo;s HEAD to match your local HEAD commit hash.<br />
* '''Fast-forwarding:''' A push operation is considered to be fast-forwarding, if it adds commits following the current HEAD, and non-fast-forward if the history does not fully contain all the commits from the target.<br />
* '''Rebase:''' In the normal workflow of git, updating the state of a branch implies merging from another branch. There are cases, however, when we do not want to use a merge commit, but rather we want to re-apply all the changes on top of the new updated code. The rebase operation does exactly that: it computes the list of commits that have been added since the branches split off, and applies all of them on top of the target commit. Because the metadata will change, a rebase operation is considered to &ldquo;rewrite history&rdquo;. Because of that, rebasing is normally considered an advanced operation, and can have side-effects that may be harder to grasp for a beginner. However, we&rsquo;ll be using it extensively, so it is important to understand the idea.<br />
* '''Force-pushing:''' Git normally rejects commits that are non-fast-forward. If we amend, rebase, or otherwise modify the commit data or metadata of commits that have been previously pushed to a different branch or repository, we are implicitly generating an &ldquo;alternate history&rdquo; of those changes. Git will then refuse to accept those modifications, as they could potentially lose data, and hence is considered dangerous. Git provides a &ldquo;--force&rdquo; setting, which disables all of those checks. Because &ldquo;--force&rdquo; is extremely dangerous, it&rsquo;s highly discouraged to use this flag. However, in order to effectively use the rebase option, we do need to force-push commits, when working with ''our own work branches'' (force-pushing to the '''master''' branch of our main repository is '''strictly forbidden''' , and reserved only for administrative actions). In order to lessen the danger of the force-push operation, there is an alternative flag, namely &ldquo;--force-with-lease&rdquo;, that conditionally allows the force-push, but only if the remote state matches the local cache.<br />
* '''Pull Requests:''' When contributing as an external contributor, or when working with large change sets, spanning many commits, or with sensitive edits, we want to be able to review the changes before they are applied. In GitHub, as with most other repository hosts, a pull request offers this service. A pull request gives other developers a chance to comment, request changes, and eventually approve or reject those changes. Once the changes have been reviewed, and sufficiently approved (the number of approvals is at the discretion of the pull request&rsquo;s author -- or assignee if the author is not a team member), the Merge button allows integrating those changes into the master branch.<br />
<br />
=== FAQ ===<br />
* You spoke about parents, but what about children, which is the &ldquo;next commit&rdquo; for a given hash?<br />
** Git does not have any information about the children in the commit graph, in order to obtain the list of children (branching implies there can be many), a slow walk through all the branch histories is needed. The main method to analyze the history is to open the commit log on your favorite Git GUI tool, and locate your commit in there. Because this can sometimes be annoying, we have an alternative way through the [https://reactos.org/getbuilds GetBuilds] site, which allows navigating back and forth through the builds, giving something that approximates the linear history of SVN.<br />
<br />
<br />
== Workflow ==<br />
=== Basic rules that we should try to follow ===<br />
* Prefer working on a branch, and pushing to your personal fork.<br />
** Except for small commits that can be safely pushed to master, if you feel they are safe and you are part of the team<br />
<br />
* Avoid merge commits<br />
** This implies using rebase to ensure that all history remains linear<br />
<br />
* Keep a summary of the commit on the first line<br />
** Example: <pre>[NTOSKRNL]: Update exports to NT6.3&#10;&#10;* Added some stuff&#10;* Removed some stuff</pre><br />
<br />
<br />
=== Cloning the repository ===<br />
These are the recommended steps to set up a local clone:<br />
<br />
# Go to https://github.com/reactos/reactos and click the ''Fork'' button there to create a ''personal fork'' of the ReactOS repository.<br>This one will host your work branches and will be the source of your Pull Requests. It will be available publicly in a URL like ''<nowiki>https://github.com/&lt;yourusername&gt;/reactos</nowiki>''.<br />
#* I will be calling them ''personal fork'' to distinguish them from a project-wide fork such as OpenOffice vs LibreOffice. A personal fork is just a personal space to make changes in, with the intention of contributing them back upstream.<br />
#* Creating forks on other sites is possible, but you won't have the pull request feature, so not recommended.<br />
# Clone ''<nowiki>https://github.com/&lt;yourusername&gt;/reactos</nowiki>'' into your computer.<br />
#* Using TortoiseGit:<br>Right-click somewhere → Git Clone → Enter URL and Directory → OK<br />
#* Using the command line: <pre>git clone https://github.com/&lt;yourusername&gt;/reactos</pre><br />
# Add https://github.com/reactos/reactos as a remote named ''upstream'', so that you can fetch latest changes from the main ReactOS repository.<br />
#* Using TortoiseGit:<br />
#*# Right-click the clone folder → TortoiseGit → Settings → Remote<br />
#*# In the ''Remote:'' box, enter ''upstream''. In the ''URL'' box, enter ''https://github.com/reactos/reactos''<br />
#*# Then click ''Add New/Save'' and answer any appearing questions with ''No''<br />
#* Using the command line: <pre>git remote add upstream https://github.com/reactos/reactos</pre><br />
<br />
Now you have a local clone with two remotes:<br />
* '''origin''' - Your personal fork, where you can work in branches<br />
* '''upstream''' - The main ReactOS repository<br />
<br />
=== Updating your environment with latest code ===<br />
This is how you get the latest code set up before you start working on something new:<br />
<br />
# Checkout your local ''master'' branch (if you were working on another branch)<br />
#* Using TortoiseGit:<br>Right-click the clone folder → TortoiseGit → Switch/Checkout → Select ''master'' as ''Branch:'' → OK<br />
#* Using the command line: <pre>git checkout master</pre><br />
# Fetch the latest commits from the main ReactOS repository and apply them on top of your local master branch:<br />
#* Using TortoiseGit:<br />
#*# Right-click the clone folder → Git Sync<br />
#*# Set 'Local Branch' and 'Remote Branch' to 'master', and 'Remote URL' to upstream <br />
#*# Click the ''Fetch & Rebase'' button (it's hidden behind the arrow next to the ''Pull'' button)<br />
#* Using the command line: <pre>git fetch upstream&#10;git rebase upstream/master</pre> or simply <pre>git pull --rebase upstream master</pre><br />
<br />
=== Performing quick fixes (a.k.a. Working directly into the master branch of the main repository) ===<br />
These are the steps one would follow during normal development of a &ldquo;quick fix&rdquo; (without a work branch).<br />
It is recommended to use a work branch for anything that is more than a trivial change:<br />
<br />
# Ensure your local master is up to date following the instructions above.<br />
# Do the work. Commit early, commit often (locally).<br />
#* You can later use TortoiseGit's ''combine into one commit'', or commandline git's interactive rebase, to reduce the number of total commits you will push later, so don't worry about spamming the log!<br />
# Commit the final touches.<br />
# Fetch the latest code again following the instructions above, and use the rebase method to make sure your changes are applied on top of the latest master code.<br />
#* THIS IS VERY IMPORTANT! '''ALWAYS REBASE BEFORE PUSHING TO MASTER!'''<br />
# This is your last chance to use interactive rebase, or TortoiseGit's log window, to cleanup your commits until you are satisfied with the resulting ''patch set''.<br />
# Push to upstream<br />
#* Using TortoiseGit:<br>Right-click the clone folder → TortoiseGit → Push → Select ''master'' as ''Remote:'' under ''Ref'' and ''upstream'' as ''Remote:'' under ''Destination'' → OK<br />
#* Using the command line: <pre>git push upstream</pre><br />
# If the push operation complains about non-fastforward commits, it means someone else pushed something in between your fetch and your push, so you will have to go back to the fetch+rebase steps and try again.<br />
<br />
<br />
It should go without saying, but '''NEVER EVER FORCE-PUSH TO MASTER'''. Gladly, this is disabled on the server.<br />
<br />
<br />
=== Working on a branch ===<br />
These are the steps one would follow to work on a personal branch, backed by your personal fork, on something that can't be described as a &ldquo;quick fix&rdquo;:<br />
<br />
# Ensure your local master is up to date following the instructions above.<br />
# Create the branch with a name representative of the work you will be doing<br />
#* Using TortoiseGit:<br />
#*# Right-click the clone folder → TortoiseGit → Create Branch → Enter a name → OK<br />
#*# Right-click the clone folder → TortoiseGit → Switch/Checkout → Select your new branch → OK<br />
#* Using the command line: <pre>git branch &lt;branch-name&gt;&#10;git checkout &lt;branch-name&gt;</pre><br />
# Do the work. Commit early, commit often (locally).<br />
#* You can later use TortoiseGit's ''combine into one commit'', or commandline git's interactive rebase, to reduce the number of total commits you will push later, so don't worry about spamming the log!<br />
# Push to your personal fork (Remote: ''origin'') whenever you want to back things up online. This is optional, but recommended!<br />
#* The first time you push to your personal fork, you have to tell it explicitly about the new branch:<br />
#** Using TortoiseGit:<br />
#**# Right-click the clone folder → TortoiseGit → Push<br />
#**# Leave ''Remote:'' in ''Ref'' blank and select ''origin'' as ''Remote:'' in ''Destination''<br />
#**# Check ''Set upstream/track remote branch''<br />
#**# Click ''OK''<br />
#** Using the command line: <pre>git push --set-upstream origin &lt;branch-name&gt;</pre><br />
#* Subsequent pushes will be easier:<br />
#** Using TortoiseGit:<br>Right-click the clone folder → TortoiseGit → Push → OK<br />
#** Using the command line: <pre>git push</pre><br />
# Commit the final touches and push the result to your personal fork.<br />
# Navigate to your personal fork on GitHub, and in your branch, choose ''Create pull request''<br />
#* If the push was done very recently, it will show up on the main page of your fork<br />
# Take a final look, and maybe ask others to review the code and give their approval.<br />
#* Getting things reviewed is highly recommended, specially for bigger changes.<br />
# Once you are positive about your changes, press the ''Merge with rebase'' button that GitHub provides.<br />
<br />
<br />
If the merge button isn't enabled, it probably means GitHub can't safely rebase your changes.<br />
In that situation, you first have to rebase manually as described in [[#Updating your environment with latest code]].<br />
Then force-push into your personal fork<br />
* Using TortoiseGit:<br>Right-click the clone folder → TortoiseGit → Push → Check ''Force: May discard known changes'' → OK<br />
* Using command line: <pre>git push --force-with-lease</pre><br />
<br />
<br />
=== Applying an old patch from SVN ===<br />
We have plenty of patches in JIRA, and in our HDDs, that were created from SVN, or at least '''for''' svn.<br />
<br />
Although Git is perfectly capable of generating and applying patches, its primary patch format contains more metadata that SVN patches are lacking. Most notably, the authorship information. To work around the differences in the patch format, alternative methods need to be used to get the patch applied.<br />
<br />
Here are the steps needed to apply an old patch:<br />
<br />
# Make sure your environment is updated, and an appropriate branch is in place, as described in the previous sections.<br />
# Use the general-purpose ''patch'' program (instead of ''git apply'') or a GUI patching utility to apply the changes.<br />
#* Using TortoiseGit:<br>Right-click the patch file → TortoiseGit → Review/apply single patch<br />
#* Using the command line: <pre>patch -p1 < patchfile.patch</pre><br />
# Review the changes and write an appropriate message.<br />
# Perform the commit with a custom author<br />
#* Using TortoiseGit:<br>Check the ''Set Author'' checkbox in the Commit dialog and enter the Name and E-Mail Address of the patch author.<br />
#* Using the command line: <pre>git commit --author &quot;Name &lt;email@address.com&gt;&quot;</pre><br />
# Rebase and push as needed.<br />
<br />
== Slightly more advanced topics ==<br />
=== Amending commits ===<br />
If you notice a mistake in your last commit, Git allows you to ''amend'' it:<br />
# Do the file changes that should have been included in the last commit.<br />
# Amend the last commit:<br />
#* Using TortoiseGit:<br>Right-click the clone folder → Git Commit → Check ''Amend Last Commit''<br />
#* Using the command line: <pre>git commit --amend</pre><br />
<br />
You can also change author or date information when amending commits.<br />
TortoiseGit has additional checkboxes for this while command line Git accepts additional parameters for ''git commit''.<br />
<br />
Note that you change the history when amending commits. That means, if you have already pushed your last commit to your personal fork, you have to force-push the changes.<br />
That also means, amending a commit that has been pushed to the main ReactOS repository is not possible!<br />
<br />
Alternatively you can amend, squash or rename multiple commits at once. This is called "interactive rebasing".<br />
* Using the command line: <pre>git rebase -i HEAD~3</pre> where 3 is the number of commits to edit after HEAD.<br />
<br />
=== Removing the need to enter your user+password on push (improves security) ===<br />
Github (similarly to most other Git hosts), offers a way to authenticate your machines using SSH, replacing the need for passwords. These SSH keys are usually generated once per machine, so that if one machine becomes stolen and/or compromised, you can disavow the public key, and prevent extra damage.<br />
<br />
In order to use an SSH key, these are the steps:<br />
# Get yourself an SSH key. This depends on your environment and platform. My choice is to configure TortoiseGit to use PuTTY, generate my keys with PuTTYgen, and load them with PuTTY's Pageant (authentication agent). Another option is to use OpenSSH tools instead.<br />
#* You can find tutorials of your chosen tool, or ask someone on IRC for help.<br />
# Add the public key to your GitHub account, in the account settings, under ''SSH Keys''. Don't ever share the private key!<br />
# Change your local clone settings, so that your remotes point to the URL with SSH protocol.<br>You can see this URL by navigating to the repository, clicking the ''Clone or download'' button and choosing ''Use SSH''.<br />
# From this point on, pushing will not ask for your GitHub password, but it WILL ask for the SSH passphrase if your private key has one.<br />
<br />
=== Assign commits with your name & E-mail automatically ===<br />
Git gives the possibility to set up your name and E-mail within Git configuration without the need to append '''--author''' flag each time you commit. To do so you must type the following command line as follows:<br />
* Using the terminal<br />
<pre>git config --global user.name "YOUR NAME HERE"</pre><br />
<pre>git config --global user.email youremail@address.com</pre><br />
The '''--global''' flag saves your settings globally, for each commit and whatever you do in Git. The settings can be changed by typing the command lines with new name/E-mail again. To list the current Git configuration (alongside with your name and E-mail) type the following command line below:<br />
* Using the terminal<br />
<pre>git config --list</pre><br />
<br />
=== Amending your commit with name/E-mail ===<br />
If you have forgotten to sign your commit with your personal data (name and mail) you can '''amend''' the commit. To do so, you must open the terminal and type the following command line:<br />
* Using the terminal<br />
<pre>git commit --amend --author="YOUR NAME <youremail@address.com>"</pre><br />
The '''--author''' flag in the command line, alongside with the '''--amend''' flag, will amend the specific commit in your branch with your name and E-mail. Note that you must do a force push in order for the changes to take effect. For this, type the following command line:<br />
* Using the terminal<br />
<pre>git push --force-with-lease</pre><br />
'''KEEP IN MIND''' this will only update the SINGLE LAST commit of your branch! If you have more than one commits which don't have your name/E-mail assigned, then you've to '''rebase''' the branch. Assuming the commit order of your branch is A-B-C-D-E (which E is the HEAD) then the command line will be like so:<br />
* Using the terminal<br />
<pre>git rebase -i A^</pre><br />
'''NOTE''' that A is the hash of the first commit and the '''"^"''' symbol means it'll take all the commits from the branch. Git will open a text editor with the list of all the commits. Replace the text from '''pick''' to '''edit'''. When Git prompts you to change the commit, you can now sign the commit with your name/E-mail with this command line:<br />
* Using the terminal<br />
<pre>git commit --amend --author="YOUR NAME <youremail@address.com>"</pre><br />
Finally, you can do a force push.<br />
* Using the terminal<br />
<pre>git push --force-with-lease</pre><br />
<br />
[[Category:Source Control]]<br />
[[Category:Tutorial]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Hackfest&diff=49591Hackfest2019-10-31T17:36:48Z<p>Colin Finck: Hackfest 2019 is over</p>
<hr />
<div>There have been several ReactOS Hackfests over the years:<br />
<br />
* [[ReactOS Hackfest 2019]]<br />
* [[ReactOS Hackfest 2018]]<br />
* [[ReactOS Hackfest 2017]]<br />
* [[ReactOS Hackfest 2015]]<br />
<br />
[[Category:Community]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Welcome_to_the_ReactOS_Development_Wiki&diff=49590Welcome to the ReactOS Development Wiki2019-10-31T17:34:20Z<p>Colin Finck: Hackfest 2019 is over</p>
<hr />
<div>{| cellspacing="20" cellpadding="0" width="100%"<br />
|- valign="top"<br />
| width="50%" |<br />
{| width="100%"<br />
| style="width: 35px; vertical-align: top" | [[Image:Developers.png|link=]]<br />
| style="padding-left: 10px" | <h2 style="border: 0; margin: 0 0 3px 0; padding: 0">DEVELOPING</h2><br />
Get involved! Help us make ReactOS better.<br />
<hr style="margin: 4px 0" /><br />
<span style="font-size: 8pt">'''[[ReactOS|What is ReactOS]]''' | [[ReactOS_FAQ|FAQ]] | [[Development Introduction]] | [[Programming Guidelines]] | [[Coding Style]] | [https://git.reactos.org/?p=reactos.git;a=tree Online Code Browser] </span><br />
|}<br />
||<br />
{| width="100%"<br />
| style="width: 35px; vertical-align: top" | [[Image:Testing.png|link=]]<br />
| style="padding-left: 10px" | <h2 style="border: 0; margin: 0 0 3px 0; padding: 0">TESTING</h2><br />
Test hardware or software and report problems.<br />
<hr style="margin: 4px 0" /><br />
<span style="font-size: 8pt"> '''[[Installing ReactOS]]''' | [[RosBuild|Nightly Builds]] | [[:Category:Tutorial|Tutorials]] | [[File Bugs|Report a bug]] | [[Testing Central]] | [http://reactos.org/testman/ Automatic Regression Tests] | [[Supported Hardware]]</span><br />
|}<br />
<br />
|- valign="top"<br />
<br />
||<br />
{| width="100%"<br />
| style="width: 35px; vertical-align: top" | [[Image:Tools.png|link=]]<br />
| style="padding-left: 10px" | <h2 style="border: 0; margin: 0 0 3px 0; padding: 0">BUILDING</h2><br />
Build your own ReactOS!<br />
<hr style="margin: 4px 0" /><br />
<span style="font-size: 8pt">[[ReactOS Git For Dummies#Cloning the repository|Getting the Source Code]] | [[Build Environment|Getting the Build Environment]] | [[Building ReactOS]] | [[Building Modules]]</span><br />
|}<br />
<br />
||<br />
{| width="100%"<br />
| style="width: 35px; vertical-align: top" | [[Image:Debugging.png|link=]]<br />
| style="padding-left: 10px" | <h2 style="border: 0; margin: 0 0 3px 0; padding: 0">DEBUGGING</h2><br />
Fix bugs and improve ReactOS quality.<br />
<hr style="margin: 4px 0" /><br />
<span style="font-size: 8pt">'''[[File Bugs|Report a bug]]''' | [[Debugging|Debugging Basics]] | [[Kdbg|Kernel Debugger]] | [[ReactOS Remote Debugger|Remote Debugger]] | [[Submitting Patches]]</span><br />
|}<br />
<br />
|- valign="top"<br />
<br />
||<br />
{| width="100%"<br />
| style="width: 35px; vertical-align: top" | [[Image:Translating.png|link=]]<br />
| style="padding-left: 10px" | <h2 style="border: 0; margin: 0 0 3px 0; padding: 0">TRANSLATING</h2><br />
Translate ReactOS into other languages.<br />
<hr style="margin: 4px 0" /><br />
<span style="font-size: 8pt">[[Translation Introduction]] | [[RC File Standards]]</span><br />
|}<br />
<br />
||<br />
{| width="100%"<br />
| style="width: 35px; vertical-align: top" | [[Image:About.png|link=]]<br />
| style="padding-left: 10px" | <h2 style="border: 0; margin: 0 0 3px 0; padding: 0">DOCUMENTATION</h2><br />
Get to know more about ReactOS and its internals.<br />
<hr style="margin: 4px 0" /><br />
<span style="font-size: 8pt">[[ReactOS|About ReactOS]] | [http://doxygen.reactos.org Generated Documentation] | [[Techwiki:main|Techwiki]] | [[Reference]] | [[ReactOS_FAQ|FAQ]] | [[Documentation Guidelines]] | [[Wiki Maintenance]] | [[File Systems]] | [[Third party libraries]]</span><br />
|}<br />
<br />
|- valign="top"<br />
<br />
||<br />
{| width="100%"<br />
| style="width: 35px; vertical-align: top" | [[Image:Status.png|link=]]<br />
| style="padding-left: 10px" | <h2 style="border: 0; margin: 0 0 3px 0; padding: 0">STATUS</h2><br />
See what needs to be done and what needs improvements.<br />
<hr style="margin: 4px 0" /><br />
<span style="font-size: 8pt">[[Versions]] | [[Changelogs]] ([[Community Changelogs]]) | [[Roadmap]] | [[Version Tests]] | [[Missing ReactOS Functionality|Missing Functionality]] | [[Printing]] | [[Shell_status|Shell]] | [[ReactOS_ports|Ports]]</span><br />
|}<br />
<br />
||<br />
{| width="100%"<br />
| style="width: 35px; vertical-align: top" | [[Image:Support.png|link=]]<br />
| style="padding-left: 10px" | <h2 style="border: 0; margin: 0 0 3px 0; padding: 0">COLLABORATING</h2><br />
Contact others and solve problems together.<br />
<hr style="margin: 4px 0" /><br />
<span style="font-size: 8pt">'''[[Events]]''' | [[People of ReactOS]] | [[Connect to the ReactOS IRC Channels]] | [http://www.reactos.org/community/mailing-lists Mailing Lists] | [[Mumble]] | [http://www.reactos.org/forum/ Forums] | [[Driver Signing]] | [[Google Summer of Code]]</span><br />
|}<br />
|- valign="top"<br />
<br />
||<br />
{| width="100%"<br />
| style="width: 35px; vertical-align: top" | [[Image:About.png|link=]]<br />
| style="padding-left: 10px" | <h2 style="border: 0; margin: 0 0 3px 0; padding: 0">Layman's guides.</h2><br />
Step by step guides introducing parts from the ReactOS workflow.<br />
<hr style="margin: 4px 0" /><br />
<span style="font-size: 8pt">[[User:Oldman/A_layman's_guide | List of Guides]] |<br />
[[User:Oldman/A_layman's_guide/Getting_an_ISO_to_test|Getting an ISO to test]] |<br />
[[User:Oldman/A_layman's_guide/How_to_compile_ReactOS|How to compile ReactOS]] |<br />
[[User:Oldman/A_layman's_guide/How_to_get_a_debug_log|How to get a debug log]] |<br />
[[User:Oldman/A_layman's_guide/How_to_create_a_JIRA_Issue|How to create a JIRA Issue for your bug]] |<br />
[[User:Oldman/A_layman's_guide/Regression_testing|Finding the guilty revision]] |<br />
[[User:Oldman/A_layman's_guide/How_to_use_log2lines|log2lines]]</span><br />
|}<br />
<br />
||<br />
<br />
{| width="100%"<br />
| style="width: 35px; vertical-align: top" | [[Image:About.png|link=]]<br />
| style="padding-left: 10px" | <h2 style="border: 0; margin: 0 0 3px 0; padding: 0">Articles by Petr Akhlamov</h2><br />
Some info and manuals<br />
<hr style="margin: 4px 0" /><br />
<span style="font-size: 8pt">[[User:Petr-akhlamov/ReactOS sound schemes|Sound schemes]] | [[User:Petr-akhlamov/Samba|Samba]] | [[User:Petr-akhlamov/Shell|Shell]] | [[User:Petr-akhlamov/NTVDM|NTVDM]] | [[User:Petr-akhlamov/WOW|WOW]] | [[User:Petr-akhlamov/RAM from HD|RAM from HDD]] | [[User:Petr-akhlamov/Compatibility mode|Compatibility mode]] | [[User:Petr-akhlamov/Crash Reports|Crash Reports]] | [[User:Petr-akhlamov/Recovery Console|Recovery Console]]</span><br />
|}<br />
<br />
|}<br />
__NOTOC__<br />
__NOEDITSECTION__</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Build_Environment&diff=49191Build Environment2019-08-15T09:49:46Z<p>Colin Finck: Protected "Build Environment": High traffic page: The de-facto official RosBE download page ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))</p>
<hr />
<div>To build ReactOS you will need a suitable build environment. Currently ReactOS Source Code is able to be compiled using both open source (gcc, mingw, …), and Microsoft's compiler tools, with the official ReactOS Build Environment (RosBE) being recommended. If you want to report problems, please first make sure that you use the latest version of the ReactOS Build Environment.<br />
<br />
== Download the Build Environment ==<br />
<br />
There are two ReactOS Build Environments available, a version for Windows NT-compatible operating systems (Windows XP, Windows Vista, 7, etc.) and a version for Unix-compatible operating systems (Linux, FreeBSD, etc.).<br />
<br />
=== Windows ===<br />
----<br />
<span style="font-size: 12pt; font-weight: bold; ">[[File:RosBE.png|32px]]<br />
[http://sourceforge.net/projects/reactos/files/RosBE-Windows/i386/{{RosBE-Windows-Version}}/RosBE-{{RosBE-Windows-Version}}.exe/download ReactOS Build Environment for Windows NT-compatible OS ''Version {{RosBE-Windows-Version}}'']<br />
</span><br />
* For older versions, please have a look at our [http://sourceforge.net/projects/reactos/files/RosBE-Windows/i386/ ReactOS SourceForge project page]<br />
----<br />
<br />
=== Unix and Linux ===<br />
----<br />
<span style="font-size: 12pt; font-weight: bold;">[[File:RosBE.png|32px]]<br />
[http://downloads.sourceforge.net/reactos/RosBE-Unix-{{RosBE-Unix-Version}}.tar.bz2 ReactOS Build Environment for Unix-compatible Operating Systems ''Version {{RosBE-Unix-Version}}'']</span><br />
* For older versions, please have a look at our [http://sourceforge.net/projects/reactos/files/RosBE-Unix/ ReactOS SourceForge project page]<br />
* '''System Requirements:''' Please look at the <tt>README</tt> file for detailed information about the needed packages and other requirements.<br />
----<br />
== Next Steps ==<br />
<br />
After setting up your build environment, see [[Building ReactOS]] for downloading source and further information.<br />
<br />
== Included Utilities ==<br />
<br />
All these Information can be found in RosBE, too by typing <code>help</code>.<br />
<br />
=== <code>BASEDIR</code> ===<br />
<br />
Small command which immediately sets you back to the ReactOS Source Base Directory.<br />
<br />
=== <code>CHARCH</code> ===<br />
<br />
Change the Architecture to build ReactOS for, for the current RosBE session.<br />
Possible Architectures are right now:<br />
* '''i386'''<br />
* '''amd64'''<br />
<br />
=== <code>CHDEFDIR</code> ===<br />
<br />
Change the ReactOS source directory for the current RosBE session.<br />
<br />
* '''previous''': Switch to the previous ReactOS source directory.<br />
<br />
=== <code>CHDEFGCC</code> ===<br />
<br />
Usage: <code>chdefgcc [PATH] [TYPE]</code><br />
Change the MinGW/GCC directory for the current RosBE session.<br />
<br />
* '''Path''': Path to set the Host or Target GCC to.<br />
* '''Type''': Set it to "target" or "host"<br />
<br />
=== <code>RADDR2LINE</code> ===<br />
<!--the template does not work her so well --><br />
''Main article: [[Debugging#Translating Addresses|Debugging – Translating Addresses]]''<br />
<br />
Usage: <code>raddr2line [FILE] [ADDRESS]</code><br />
Translates program addresses into file names and line numbers to assist developers with finding specific bugs in ReactOS. If either of the options is not given you will be prompted for it.<br />
<br />
* '''FILE''': This can be either a fully specified path or just the file name [you can use a partial name ie. ntdll*] of the executable to be analyzed. When using just a file the current directory and all sub-directories are searched.<br />
* '''ADDRESS''': The address to be translated.<br />
<br />
=== <code>SCUT</code> ===<br />
<br />
Simple utility for managing different directory locations. SCUT can be used to quickly change from one directory to another inside the BE prompt, making it easier to go to source in another directory. Included in both the Windows and Unix BEs.<br />
You can pass the following parameters to scut:<br />
<br />
* '''list''': Lists all shortcuts currently available.<br />
* '''add''': Adds a shortcut to the list.<br />
* '''edit''': Edits a shortcut on the list.<br />
* '''rem''': Removes a shortcut from the list.<br />
* '''def''': Switches to the default directory location, which is enabled on every start of RosBE.<br />
<br />
If you want to use a directory shortcut, for example one with the name ''trunk'', just enter ''scut trunk'' and the program will switch to the directory you set for this shortcut.<br />
<br />
=== <code>SSVN</code> ===<br />
<br />
This command is '''not used anymore''', see [[Building ReactOS#Getting a Working Copy]].<br />
<br />
Windows ONLY.<br />
Creates, updates or cleans up your ReactOS source tree or shows the revision number of the local and online trees.<br />
<br />
* '''update''': Updates to HEAD revision or to a specific one when the second parameter specifies one.<br />
* '''create''': Creates a new ReactOS source tree.<br />
* '''rosapps''': Creates/Updates a ReactOS RosApps source tree.<br />
* '''rostests''': Creates/Updates a ReactOS RosTests source tree.<br />
* '''cleanup''': Cleans up and fixes errors in the source tree.<br />
* '''status''': Show the current local and online revision numbers.<br />
<br />
=== <code>UPDATE</code> ===<br />
<br />
Windows ONLY.<br />
Updates all files of RosBE to the most recent files.<br />
<br />
* '''delete X''': Deletes Update Nr X.<br />
* '''info X''': Shows info about Update Nr X.<br />
* '''nr X''': Re/Installs Update Nr X.<br />
* '''reset''': Removes the Updates Cache. Not recommended.<br />
* '''status''': Shows the recent status of available, non installed updates.<br />
<br />
== Questions or Problems? ==<br />
<br />
If you have problems or questions concerning the Build Environment, it's the best to ask in the [irc://irc.freenode.net/reactos-rosbe #reactos-rosbe] or [irc://irc.freenode.net/reactos #reactos] IRC channels.<br />
<br />
Otherwise you can also try to contact [[Daniel Reimer]] (Windows version), [[Colin Finck]] (Unix version) directly.<br />
<br />
[[Category:Building]]<br />
[[Category:Tutorial]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=ReactOS_Hackfest_2019/Lists&diff=49047ReactOS Hackfest 2019/Lists2019-07-18T06:50:00Z<p>Colin Finck: /* Shirts/Hoodies */</p>
<hr />
<div>See [[ReactOS Hackfest 2019]] for the general information about the event.<br />
<br />
== Registrations ==<br />
Please register for the event by putting your name and details into this list.<br />
<br />
'''Note''' official dates are: from Thursday, 15th August to Tuesday, 20th August 2019<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Days<br />
! Travelling to the event<br />
! Place to stay<br />
! Interested in shared aptmt<br />
|-<br />
|Colin Finck<br />
|Wednesday through Wednesday<br />
|By train<br />
|At a friend's place<br />
|no<br />
|-<br />
|Daniel Reimer<br />
|Probably Thursday through Saturday<br />
|Probably by train<br />
|Probably at .... not sure yet<br />
|yes<br />
|-<br />
|Mark Jansen<br />
|Probably Wednesday through Wednesday<br />
|By train<br />
|At shared place<br />
|Yes<br />
|-<br />
|Stanislav Motylkov<br />
|Wednesday through Wednesday<br />
|By air<br />
|At shared place<br />
|yes<br />
|-<br />
|Konstantin Motylkov<br />
|Wednesday through Wednesday<br />
|By air<br />
|At shared place<br />
|yes<br />
|-<br />
|Timo Kreuzer<br />
|Wednesday through Wednesday<br />
|By train<br />
|not sure yet<br />
| yes<br />
|-<br />
|Joachim Henze<br />
|Thursday to Sunday?<br />
|By train<br />
|Probably at A&O Berlin Hauptbahnhof<br />
| no<br />
|-<br />
|Victor Perevertkin<br />
|Wednesday through Wednesday<br />
|By air<br />
|At shared place<br />
|yes<br />
|-<br />
|Aleksandr Rechitskii <br />
|Thursday to Wednesday +/- 2 days<br />
|By air<br />
|At shared place<br />
|highly probably yes<br />
|-<br />
|Thomas Faber<br />
|Multiple short visits<br />
|Local<br />
|Home<br />
|no<br />
|}<br />
<br />
== Shirts/Hoodies ==<br />
It's finally time to print some new ReactOS merchandising. If you make it to the Hackfest and want a free shirt or hoodie, please put yourself and your desired size on this list.<br />
<br />
[[File:Hackfest2019-Shirt.png|thumb]]<br />
[[File:Hackfest2019-Hoodie.png|thumb]]<br />
<br />
Shirts will be based on [https://www.spreadshirt.de/gestalten/detail/m%C3%A4nner-premium-t-shirt-PT812 this Spreadshirt product].<br />
<br />
Hoodies will be based on [https://www.spreadshirt.de/gestalten/detail/männer-premium-kapuzenjacke-PT93 this Spreadshirt product].<br />
<br />
Check both links for exact sizes.<br />
<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Size<br />
! Shirt or Hoodie?<br />
|-<br />
|Colin Finck<br />
|L<br />
|Shirt<br />
|-<br />
|Mark Jansen<br />
|L<br />
|Shirt (L), Hoodie(L)<br />
|-<br />
|Joachim Henze<br />
|<br />
|Shirt (L), Hoodie (XL)<br />
|-<br />
|Stanislav Motylkov<br />
|<br />
|Shirt (XL), Hoodie (XXL)<br />
|-<br />
|Timo Kreuzer<br />
|L<br />
|Hoodie<br />
|-<br />
|Victor Perevertkin <br />
|M<br />
|Shirt (M), Hoodie (M)<br />
|-<br />
|Aleksandr Rechitskii <br />
|Should be M, L also fits<br />
|Shirt (M), Hoodie (M)<br />
|-<br />
|Daniel Reimer<br />
|XXL<br />
|Shirt (XXL), Hoodie (XXL)<br />
|-<br />
|Thomas Faber<br />
|M<br />
|Shirt<br />
|-<br />
|Ged Murphy<br />
|M<br />
|Shirt (M), Hoodie (M) (both pref. without back-logo)<br />
|-<br />
|Alex Ionescu<br />
|L<br />
|Shirt (L), Hoodie (L)<br />
|-<br />
|CS<br />
|L + XL + XXL<br />
|Shirt (pref. without back-logo)<br />
|}<br />
<br />
== What to do differently this year? ==<br />
This is the 4th iteration of the Hackfest, and based on this experience, you may have some ideas on what to do differently this year compared to the previous ones.<br />
<br />
* Let's give Timo one of the keys, so the Hackfest is open 24/7 :P - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
* Let's all have a meal together sponsored by ReactOS Deutschland e.V. We even get donations these days specifically for that purpose :) - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
<br />
== Talks ==<br />
Does any of you want to present something at the Hackfest? Then please add yourself to this list:<br />
<br />
* Nothing yet<br />
<br />
== Ideas ==<br />
Add everything you want to have discussed/worked on during the Hackfest to this list. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
* Work on the new website [[User:Learn more|Mark Jansen]] ([[User talk:Learn more|talk]]) 11:08, 19 April 2019 (UTC)<br />
* Bring down the amount of open PR's [[User:Learn more|Mark Jansen]] ([[User talk:Learn more|talk]]) 11:08, 19 April 2019 (UTC)<br />
** And review JIRA tickets with PATCH label [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]) 11:54, 7 July 2019 (UTC)<br />
* Hack the original Xbox to revive the [[Xbox Port]] --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Implement Wi-Fi WPA/WPA2 support (I have some ideas ^^) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Get remaining x64 issues resolved (e.g. resource list parsing) (Timo)<br />
* Prepare new RosBE with GCC 8 and new CMake (Timo)<br />
** If you are going to build GCC, please take a look at incorporating something like https://github.com/reactos/RosBE/pull/7 (Mark)<br />
* Fix tests to make WHS testbot green (Timo)<br />
* Test the fix from https://github.com/reactos/reactos/pull/1701 thoroughly on as much hardware as possible, check if this is done in other i8042 drivers as well, and finally get rid of these long-standing per-device hacks - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 06:15, 1 July 2019 (UTC)<br />
* Set up the developer web interface from GSoC project [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]) 17:57, 17 July 2019 (UTC)<br />
<br />
== Ideas from the community ==<br />
* Work on ReactX (Optional) | [[User:Mrmajik45|Mrmajik45]] ([[User talk:Mrmajik45|talk]]) 16:31, 11 April 2019 (UTC)<br />
* Test viruses in reactos because why not. [[User:Iamperson98|Iamperson98]] ([[User talk:Iamperson98|talk]]) 17:57, 5 May 2019 (UTC)<br />
<br />
== Hardware ==<br />
If you bring any specific hardware or need some for your work, which you cannot bring yourself, just add it to this list. We can centrally organize this then. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
<br />
* An original Xbox gaming console (hardware revision 1.0, if possible), Daniel will bring a version 1.1 --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
** An adapter to connect the Xbox to computer display (Daniel has a OSSC and a Framemeister for VGA conversion) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
** Two USB-to-Xbox adapters for USB keyboard and mouse (Daniel odered @ eBay three of em, hopefully arrived till then...) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* A notebook which have a Wi-Fi driver confirmed working in ReactOS --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Please bring several laptops of different generations to test the i8042prt patch at https://github.com/reactos/reactos/pull/1701 - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 06:26, 1 July 2019 (UTC)<br />
* I'd like to have ThinkPad x61 with dockstation as on previous Hackfest - for USB testing [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]) 16:04, 5 July 2019 (UTC)<br />
** Will bring one - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 21:24, 5 July 2019 (UTC)<br />
* Please bring Dell Latitude D531 and D530 laptops to test PXE boot again (we had issues that may be already fixed) [[User:Jedi-to-be|Jedi-to-be]] ([[User talk:Jedi-to-be|talk]]) 08:41, 16 July 2019 (UTC)</div>Colin Finckhttps://reactos.org/wiki/index.php?title=ReactOS_Hackfest_2019/Lists&diff=48928ReactOS Hackfest 2019/Lists2019-07-05T21:24:45Z<p>Colin Finck: /* Hardware */</p>
<hr />
<div>See [[ReactOS Hackfest 2019]] for the general information about the event.<br />
<br />
== Registrations ==<br />
Please register for the event by putting your name and details into this list.<br />
<br />
'''Note''' official dates are: from Thursday, 15th August to Tuesday, 20th August 2019<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Days<br />
! Travelling to the event<br />
! Place to stay<br />
! Interested in shared aptmt<br />
|-<br />
|Colin Finck<br />
|Wednesday through Wednesday<br />
|By train<br />
|At a friend's place<br />
|no<br />
|-<br />
|Daniel Reimer<br />
|Probably Thursday through Saturday<br />
|Probably by train<br />
|Probably at .... not sure yet<br />
|yes<br />
|-<br />
|Mark Jansen<br />
|Probably Wednesday through Wednesday<br />
|By train<br />
|A&O?<br />
|Yes<br />
|-<br />
|Stanislav Motylkov<br />
|Wednesday through Wednesday<br />
|By air<br />
|Probably at A&O Berlin Hauptbahnhof<br />
|yes<br />
|-<br />
|Konstantin Motylkov<br />
|Wednesday through Wednesday<br />
|By air<br />
|Probably at A&O Berlin Hauptbahnhof<br />
|yes<br />
|-<br />
|Timo Kreuzer<br />
|Wednesday through Wednesday<br />
|By train<br />
|not sure yet<br />
| yes<br />
|-<br />
|Joachim Henze<br />
|Thursday to Sunday?<br />
|By train<br />
|Probably at A&O Berlin Hauptbahnhof<br />
| no<br />
|-<br />
|Victor Perevertkin<br />
|Wednesday through Wednesday<br />
|By air<br />
|Don't know yet<br />
|yes<br />
|-<br />
|Aleksandr Rechitskii <br />
|Thursday to Wednesday +/- 2 days<br />
|By air<br />
|Don't know yet<br />
|highly probably yes<br />
|-<br />
|Thomas Faber<br />
|Multiple short visits<br />
|Local<br />
|Home<br />
|no<br />
|}<br />
<br />
== Shirts/Hoodies ==<br />
It's finally time to print some new ReactOS merchandising. If you make it to the Hackfest and want a free shirt or hoodie, please put yourself and your desired size on this list.<br />
<br />
[[File:Hackfest2019-Shirt.png|thumb]]<br />
[[File:Hackfest2019-Hoodie.png|thumb]]<br />
<br />
Shirts will be based on [https://www.spreadshirt.de/gestalten/detail/m%C3%A4nner-premium-t-shirt-PT812 this Spreadshirt product].<br />
<br />
Hoodies will be based on [https://www.spreadshirt.de/gestalten/detail/männer-premium-kapuzenjacke-PT93 this Spreadshirt product].<br />
<br />
Check both links for exact sizes.<br />
<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Size<br />
! Shirt or Hoodie?<br />
|-<br />
|Colin Finck<br />
|L<br />
|Shirt<br />
|-<br />
|Mark Jansen<br />
|L<br />
|Shirt<br />
|-<br />
|Joachim Henze<br />
|L<br />
|<br />
|-<br />
|Stanislav Motylkov<br />
|3XL<br />
|Both<br />
|-<br />
|Timo Kreuzer<br />
|L<br />
|<br />
|-<br />
|Victor Perevertkin <br />
|Should be M<br />
|<br />
|-<br />
|Aleksandr Rechitskii <br />
|Should be M, L also fits<br />
|<br />
|-<br />
|Daniel Reimer<br />
|XXL<br />
|<br />
|-<br />
|Thomas Faber<br />
|M<br />
|Shirt<br />
|}<br />
<br />
== What to do differently this year? ==<br />
This is the 4th iteration of the Hackfest, and based on this experience, you may have some ideas on what to do differently this year compared to the previous ones.<br />
<br />
* Let's give Timo one of the keys, so the Hackfest is open 24/7 :P - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
* Let's all have a meal together sponsored by ReactOS Deutschland e.V. We even get donations these days specifically for that purpose :) - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
<br />
== Talks ==<br />
Does any of you want to present something at the Hackfest? Then please add yourself to this list:<br />
<br />
* Nothing yet<br />
<br />
== Ideas ==<br />
Add everything you want to have discussed/worked on during the Hackfest to this list. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
* Work on the new website [[User:Learn more|Mark Jansen]] ([[User talk:Learn more|talk]]) 11:08, 19 April 2019 (UTC)<br />
* Bring down the amount of open PR's [[User:Learn more|Mark Jansen]] ([[User talk:Learn more|talk]]) 11:08, 19 April 2019 (UTC)<br />
* Hack the original Xbox to revive the [[Xbox Port]] --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Implement Wi-Fi WPA/WPA2 support (I have some ideas ^^) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Get remaining x64 issues resolved (e.g. resource list parsing) (Timo)<br />
* Prepare new RosBE with GCC 8 and new CMake (Timo)<br />
** If you are going to build GCC, please take a look at incorporating something like https://github.com/reactos/RosBE/pull/7 (Mark)<br />
* Fix tests to make WHS testbot green (Timo)<br />
* Test the fix from https://github.com/reactos/reactos/pull/1701 thoroughly on as much hardware as possible, check if this is done in other i8042 drivers as well, and finally get rid of these long-standing per-device hacks - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 06:15, 1 July 2019 (UTC)<br />
<br />
== Ideas from the community ==<br />
* Work on ReactX (Optional) | [[User:Mrmajik45|Mrmajik45]] ([[User talk:Mrmajik45|talk]]) 16:31, 11 April 2019 (UTC)<br />
* Test viruses in reactos because why not. [[User:Iamperson98|Iamperson98]] ([[User talk:Iamperson98|talk]]) 17:57, 5 May 2019 (UTC)<br />
<br />
== Hardware ==<br />
If you bring any specific hardware or need some for your work, which you cannot bring yourself, just add it to this list. We can centrally organize this then. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
<br />
* An original Xbox gaming console (hardware revision 1.0, if possible), Daniel will bring a version 1.1 --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
** An adapter to connect the Xbox to computer display (Daniel has a OSSC and a Framemeister for VGA conversion) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
** Two USB-to-Xbox adapters for USB keyboard and mouse (Daniel odered @ eBay three of em, hopefully arrived till then...) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* A notebook which have a Wi-Fi driver confirmed working in ReactOS --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Please bring several laptops of different generations to test the i8042prt patch at https://github.com/reactos/reactos/pull/1701 - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 06:26, 1 July 2019 (UTC)<br />
* I'd like to have ThinkPad x61 with dockstation as on previous Hackfest - for USB testing [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]) 16:04, 5 July 2019 (UTC)<br />
** Will bring one - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 21:24, 5 July 2019 (UTC)</div>Colin Finckhttps://reactos.org/wiki/index.php?title=ReactOS_Hackfest_2019/Lists&diff=48907ReactOS Hackfest 2019/Lists2019-07-04T20:00:23Z<p>Colin Finck: /* Shirts */</p>
<hr />
<div>See [[ReactOS Hackfest 2019]] for the general information about the event.<br />
<br />
== Registrations ==<br />
Please register for the event by putting your name and details into this list.<br />
<br />
'''Note''' official dates are: from Thursday, 15th August to Tuesday, 20th August 2019<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Days<br />
! Travelling to the event<br />
! Place to stay<br />
! Interested in shared aptmt<br />
|-<br />
|Colin Finck<br />
|Wednesday through Wednesday<br />
|By train<br />
|At a friend's place<br />
|no<br />
|-<br />
|Daniel Reimer<br />
|Probably Thursday through Saturday<br />
|Probably by train<br />
|Probably at .... not sure yet<br />
|yes<br />
|-<br />
|Mark Jansen<br />
|Probably Wednesday through Wednesday<br />
|By train<br />
|A&O?<br />
|Yes<br />
|-<br />
|Stanislav Motylkov<br />
|Thursday to Wednesday<br />
|By air<br />
|Probably at A&O Berlin Hauptbahnhof<br />
|yes<br />
|-<br />
|Konstantin Motylkov<br />
|Thursday to Wednesday<br />
|By air<br />
|Probably at A&O Berlin Hauptbahnhof<br />
|yes<br />
|-<br />
|Timo Kreuzer<br />
|Wednesday through Wednesday<br />
|By train<br />
|not sure yet<br />
| yes<br />
|-<br />
|Joachim Henze<br />
|Thursday to Sunday?<br />
|By train<br />
|Probably at A&O Berlin Hauptbahnhof<br />
| no<br />
|-<br />
|Victor Perevertkin<br />
|Thursday to Wednesday<br />
|By air<br />
|Don't know yet<br />
|yes<br />
|-<br />
|Aleksandr Rechitskii <br />
|Thursday to Wednesday +/- 2 days<br />
|By air<br />
|Don't know yet<br />
|highly probably yes<br />
|}<br />
<br />
== Shirts/Hoodies ==<br />
It's finally time to print some new ReactOS merchandising. If you make it to the Hackfest and want a free shirt or hoodie, please put yourself and your desired size on this list.<br />
<br />
[[File:Hackfest2019-Shirt.png|thumb]]<br />
[[File:Hackfest2019-Hoodie.png|thumb]]<br />
<br />
Shirts will be based on [https://www.spreadshirt.de/gestalten/detail/m%C3%A4nner-premium-t-shirt-PT812 this Spreadshirt product].<br />
<br />
Hoodies will be based on [https://www.spreadshirt.de/gestalten/detail/männer-premium-kapuzenjacke-PT93 this Spreadshirt product].<br />
<br />
Check both links for exact sizes.<br />
<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Size<br />
! Shirt or Hoodie?<br />
|-<br />
|Colin Finck<br />
|L<br />
|Shirt<br />
|-<br />
|Mark Jansen<br />
|L (I think?)<br />
|<br />
|-<br />
|Joachim Henze<br />
|L<br />
|<br />
|-<br />
|Stanislav Motylkov<br />
|3XL<br />
|<br />
|-<br />
|Timo Kreuzer<br />
|L<br />
|<br />
|-<br />
|Victor Perevertkin <br />
|Should be M<br />
|<br />
|-<br />
|Aleksandr Rechitskii <br />
|Should be M, L also fits<br />
|<br />
|-<br />
|Daniel Reimer<br />
|XXL<br />
|<br />
|-<br />
|Thomas Faber<br />
|M<br />
|<br />
|}<br />
<br />
== What to do differently this year? ==<br />
This is the 4th iteration of the Hackfest, and based on this experience, you may have some ideas on what to do differently this year compared to the previous ones.<br />
<br />
* Let's give Timo one of the keys, so the Hackfest is open 24/7 :P - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
* Let's all have a meal together sponsored by ReactOS Deutschland e.V. We even get donations these days specifically for that purpose :) - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
<br />
== Talks ==<br />
Does any of you want to present something at the Hackfest? Then please add yourself to this list:<br />
<br />
* Nothing yet<br />
<br />
== Ideas ==<br />
Add everything you want to have discussed/worked on during the Hackfest to this list. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
* Work on the new website [[User:Learn more|Mark Jansen]] ([[User talk:Learn more|talk]]) 11:08, 19 April 2019 (UTC)<br />
* Bring down the amount of open PR's [[User:Learn more|Mark Jansen]] ([[User talk:Learn more|talk]]) 11:08, 19 April 2019 (UTC)<br />
* Hack the original Xbox to revive the [[Xbox Port]] --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Implement Wi-Fi WPA/WPA2 support (I have some ideas ^^) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Get remaining x64 issues resolved (e.g. resource list parsing) (Timo)<br />
* Prepare new RosBE with GCC 8 and new CMake (Timo)<br />
* Fix tests to make WHS testbot green (Timo)<br />
* Test the fix from https://github.com/reactos/reactos/pull/1701 thoroughly on as much hardware as possible, check if this is done in other i8042 drivers as well, and finally get rid of these long-standing per-device hacks - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 06:15, 1 July 2019 (UTC)<br />
<br />
== Ideas from the community ==<br />
* Work on ReactX (Optional) | [[User:Mrmajik45|Mrmajik45]] ([[User talk:Mrmajik45|talk]]) 16:31, 11 April 2019 (UTC)<br />
* Test viruses in reactos because why not. [[User:Iamperson98|Iamperson98]] ([[User talk:Iamperson98|talk]]) 17:57, 5 May 2019 (UTC)<br />
<br />
== Hardware ==<br />
If you bring any specific hardware or need some for your work, which you cannot bring yourself, just add it to this list. We can centrally organize this then. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
<br />
* An original Xbox gaming console (hardware revision 1.0, if possible), Daniel will bring a version 1.1 --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
** An adapter to connect the Xbox to computer display (Daniel has a OSSC and a Framemeister for VGA conversion) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
** Two USB-to-Xbox adapters for USB keyboard and mouse (Daniel odered @ eBay three of em, hopefully arrived till then...) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* A notebook which have a Wi-Fi driver confirmed working in ReactOS --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Please bring several laptops of different generations to test the i8042prt patch at https://github.com/reactos/reactos/pull/1701 - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 06:26, 1 July 2019 (UTC)</div>Colin Finckhttps://reactos.org/wiki/index.php?title=File:Hackfest2019-Hoodie.png&diff=48906File:Hackfest2019-Hoodie.png2019-07-04T20:00:00Z<p>Colin Finck: </p>
<hr />
<div>ReactOS Hackfest 2019 Hoodie</div>Colin Finckhttps://reactos.org/wiki/index.php?title=File:Hackfest2019-Shirt.png&diff=48905File:Hackfest2019-Shirt.png2019-07-04T19:59:24Z<p>Colin Finck: </p>
<hr />
<div>ReactOS Hackfest 2019 Shirt</div>Colin Finckhttps://reactos.org/wiki/index.php?title=ReactOS_Hackfest_2019/Lists&diff=48904ReactOS Hackfest 2019/Lists2019-07-04T19:47:33Z<p>Colin Finck: /* Shirts */</p>
<hr />
<div>See [[ReactOS Hackfest 2019]] for the general information about the event.<br />
<br />
== Registrations ==<br />
Please register for the event by putting your name and details into this list.<br />
<br />
'''Note''' official dates are: from Thursday, 15th August to Tuesday, 20th August 2019<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Days<br />
! Travelling to the event<br />
! Place to stay<br />
! Interested in shared aptmt<br />
|-<br />
|Colin Finck<br />
|Wednesday through Wednesday<br />
|By train<br />
|At a friend's place<br />
|no<br />
|-<br />
|Daniel Reimer<br />
|Probably Thursday through Saturday<br />
|Probably by train<br />
|Probably at .... not sure yet<br />
|yes<br />
|-<br />
|Mark Jansen<br />
|Probably Wednesday through Wednesday<br />
|By train<br />
|A&O?<br />
|Yes<br />
|-<br />
|Stanislav Motylkov<br />
|Thursday to Wednesday<br />
|By air<br />
|Probably at A&O Berlin Hauptbahnhof<br />
|yes<br />
|-<br />
|Konstantin Motylkov<br />
|Thursday to Wednesday<br />
|By air<br />
|Probably at A&O Berlin Hauptbahnhof<br />
|yes<br />
|-<br />
|Timo Kreuzer<br />
|Wednesday through Wednesday<br />
|By train<br />
|not sure yet<br />
| yes<br />
|-<br />
|Joachim Henze<br />
|Thursday to Sunday?<br />
|By train<br />
|Probably at A&O Berlin Hauptbahnhof<br />
| no<br />
|-<br />
|Victor Perevertkin<br />
|Thursday to Wednesday<br />
|By air<br />
|Don't know yet<br />
|yes<br />
|-<br />
|Aleksandr Rechitskii <br />
|Thursday to Wednesday +/- 2 days<br />
|By air<br />
|Don't know yet<br />
|highly probably yes<br />
|}<br />
<br />
== Shirts ==<br />
It's finally time to print some new ReactOS shirts. If you make it to the Hackfest and want a free shirt, please put yourself and your desired size on this list.<br />
<br />
Shirts will be based on [https://www.spreadshirt.de/gestalten/detail/m%C3%A4nner-premium-t-shirt-PT812 this Spreadshirt product].<br />
Check the link for exact sizes.<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Size<br />
! Shirt or Hoodie?<br />
|-<br />
|Colin Finck<br />
|L<br />
|Shirt<br />
|-<br />
|Mark Jansen<br />
|L (I think?)<br />
|<br />
|-<br />
|Joachim Henze<br />
|L<br />
|<br />
|-<br />
|Stanislav Motylkov<br />
|3XL<br />
|<br />
|-<br />
|Timo Kreuzer<br />
|L<br />
|<br />
|-<br />
|Victor Perevertkin <br />
|Should be M<br />
|<br />
|-<br />
|Aleksandr Rechitskii <br />
|Should be M, L also fits<br />
|<br />
|-<br />
|Daniel Reimer<br />
|XXL<br />
|<br />
|-<br />
|Thomas Faber<br />
|M<br />
|<br />
|}<br />
<br />
== What to do differently this year? ==<br />
This is the 4th iteration of the Hackfest, and based on this experience, you may have some ideas on what to do differently this year compared to the previous ones.<br />
<br />
* Let's give Timo one of the keys, so the Hackfest is open 24/7 :P - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
* Let's all have a meal together sponsored by ReactOS Deutschland e.V. We even get donations these days specifically for that purpose :) - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
<br />
== Talks ==<br />
Does any of you want to present something at the Hackfest? Then please add yourself to this list:<br />
<br />
* Nothing yet<br />
<br />
== Ideas ==<br />
Add everything you want to have discussed/worked on during the Hackfest to this list. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
* Work on the new website [[User:Learn more|Mark Jansen]] ([[User talk:Learn more|talk]]) 11:08, 19 April 2019 (UTC)<br />
* Bring down the amount of open PR's [[User:Learn more|Mark Jansen]] ([[User talk:Learn more|talk]]) 11:08, 19 April 2019 (UTC)<br />
* Hack the original Xbox to revive the [[Xbox Port]] --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Implement Wi-Fi WPA/WPA2 support (I have some ideas ^^) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Get remaining x64 issues resolved (e.g. resource list parsing) (Timo)<br />
* Prepare new RosBE with GCC 8 and new CMake (Timo)<br />
* Fix tests to make WHS testbot green (Timo)<br />
* Test the fix from https://github.com/reactos/reactos/pull/1701 thoroughly on as much hardware as possible, check if this is done in other i8042 drivers as well, and finally get rid of these long-standing per-device hacks - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 06:15, 1 July 2019 (UTC)<br />
<br />
== Ideas from the community ==<br />
* Work on ReactX (Optional) | [[User:Mrmajik45|Mrmajik45]] ([[User talk:Mrmajik45|talk]]) 16:31, 11 April 2019 (UTC)<br />
* Test viruses in reactos because why not. [[User:Iamperson98|Iamperson98]] ([[User talk:Iamperson98|talk]]) 17:57, 5 May 2019 (UTC)<br />
<br />
== Hardware ==<br />
If you bring any specific hardware or need some for your work, which you cannot bring yourself, just add it to this list. We can centrally organize this then. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
<br />
* An original Xbox gaming console (hardware revision 1.0, if possible), Daniel will bring a version 1.1 --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
** An adapter to connect the Xbox to computer display (Daniel has a OSSC and a Framemeister for VGA conversion) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
** Two USB-to-Xbox adapters for USB keyboard and mouse (Daniel odered @ eBay three of em, hopefully arrived till then...) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* A notebook which have a Wi-Fi driver confirmed working in ReactOS --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Please bring several laptops of different generations to test the i8042prt patch at https://github.com/reactos/reactos/pull/1701 - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 06:26, 1 July 2019 (UTC)</div>Colin Finckhttps://reactos.org/wiki/index.php?title=ReactOS_Hackfest_2019/Lists&diff=48881ReactOS Hackfest 2019/Lists2019-07-01T06:26:49Z<p>Colin Finck: /* Hardware */</p>
<hr />
<div>See [[ReactOS Hackfest 2019]] for the general information about the event.<br />
<br />
== Registrations ==<br />
Please register for the event by putting your name and details into this list.<br />
<br />
'''Note''' official dates are: from Thursday, 15th August to Tuesday, 20th August 2019<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Days<br />
! Travelling to the event<br />
! Place to stay<br />
! Interested in shared aptmt<br />
|-<br />
|Colin Finck<br />
|Wednesday through Wednesday<br />
|By train<br />
|At a friend's place<br />
|no<br />
|-<br />
|Daniel Reimer<br />
|Probably Thursday through Saturday<br />
|Probably by train<br />
|Probably at .... not sure yet<br />
|yes<br />
|-<br />
|Mark Jansen<br />
|Probably Wednesday through Wednesday<br />
|By train<br />
|A&O?<br />
|Yes<br />
|-<br />
|Stanislav Motylkov<br />
|Thursday to Wednesday<br />
|By air<br />
|Probably at A&O Berlin Hauptbahnhof<br />
|yes<br />
|-<br />
|Konstantin Motylkov<br />
|Thursday to Wednesday<br />
|By air<br />
|Probably at A&O Berlin Hauptbahnhof<br />
|yes<br />
|-<br />
|Timo Kreuzer<br />
|Wednesday through Wednesday<br />
|By train<br />
|not sure yet<br />
| yes<br />
|-<br />
|Joachim Henze<br />
|Thursday to Sunday?<br />
|By train<br />
|Probably at A&O Berlin Hauptbahnhof<br />
| no<br />
|-<br />
|Victor Perevertkin<br />
|Thursday to Wednesday<br />
|By air<br />
|Don't know yet<br />
|yes<br />
|-<br />
|Aleksandr Rechitskii <br />
|Thursday to Wednesday +/- 2 days<br />
|By air<br />
|Don't know yet<br />
|highly probably yes<br />
|}<br />
<br />
== Shirts ==<br />
It's finally time to print some new ReactOS shirts. If you make it to the Hackfest and want a free shirt, please put yourself and your desired size on this list.<br />
<br />
Shirts will be based on [https://www.spreadshirt.de/gestalten/detail/m%C3%A4nner-premium-t-shirt-PT812 this Spreadshirt product].<br />
Check the link for exact sizes.<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Shirt Size<br />
|-<br />
|Colin Finck<br />
|L<br />
|-<br />
|Mark Jansen<br />
|L (I think?)<br />
|-<br />
|Joachim Henze<br />
|L (both: hoodie + TShirt please)<br />
|-<br />
|Stanislav Motylkov<br />
|3XL<br />
|-<br />
|Timo Kreuzer<br />
|L<br />
|-<br />
|Victor Perevertkin <br />
|Should be M<br />
|-<br />
|Aleksandr Rechitskii <br />
|Should be M, L also fits<br />
|-<br />
|Daniel Reimer<br />
|XXL<br />
|-<br />
|Thomas Faber<br />
|M<br />
|}<br />
<br />
== What to do differently this year? ==<br />
This is the 4th iteration of the Hackfest, and based on this experience, you may have some ideas on what to do differently this year compared to the previous ones.<br />
<br />
* Let's give Timo one of the keys, so the Hackfest is open 24/7 :P - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
* Let's all have a meal together sponsored by ReactOS Deutschland e.V. We even get donations these days specifically for that purpose :) - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
<br />
== Talks ==<br />
Does any of you want to present something at the Hackfest? Then please add yourself to this list:<br />
<br />
* Nothing yet<br />
<br />
== Ideas ==<br />
Add everything you want to have discussed/worked on during the Hackfest to this list. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
* Work on the new website [[User:Learn more|Mark Jansen]] ([[User talk:Learn more|talk]]) 11:08, 19 April 2019 (UTC)<br />
* Bring down the amount of open PR's [[User:Learn more|Mark Jansen]] ([[User talk:Learn more|talk]]) 11:08, 19 April 2019 (UTC)<br />
* Hack the original Xbox to revive the [[Xbox Port]] --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Implement Wi-Fi WPA/WPA2 support (I have some ideas ^^) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Get remaining x64 issues resolved (e.g. resource list parsing) (Timo)<br />
* Prepare new RosBE with GCC 8 and new CMake (Timo)<br />
* Fix tests to make WHS testbot green (Timo)<br />
* Test the fix from https://github.com/reactos/reactos/pull/1701 thoroughly on as much hardware as possible, check if this is done in other i8042 drivers as well, and finally get rid of these long-standing per-device hacks - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 06:15, 1 July 2019 (UTC)<br />
<br />
== Ideas from the community ==<br />
* Work on ReactX (Optional) | [[User:Mrmajik45|Mrmajik45]] ([[User talk:Mrmajik45|talk]]) 16:31, 11 April 2019 (UTC)<br />
* Test viruses in reactos because why not. [[User:Iamperson98|Iamperson98]] ([[User talk:Iamperson98|talk]]) 17:57, 5 May 2019 (UTC)<br />
<br />
== Hardware ==<br />
If you bring any specific hardware or need some for your work, which you cannot bring yourself, just add it to this list. We can centrally organize this then. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
<br />
* An original Xbox gaming console (hardware revision 1.0, if possible), Daniel will bring a version 1.1 --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
** An adapter to connect the Xbox to computer display (Daniel has a OSSC and a Framemeister for VGA conversion) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
** Two USB-to-Xbox adapters for USB keyboard and mouse (Daniel odered @ eBay three of em, hopefully arrived till then...) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* A notebook which have a Wi-Fi driver confirmed working in ReactOS --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Please bring several laptops of different generations to test the i8042prt patch at https://github.com/reactos/reactos/pull/1701 - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 06:26, 1 July 2019 (UTC)</div>Colin Finckhttps://reactos.org/wiki/index.php?title=ReactOS_Hackfest_2019/Lists&diff=48880ReactOS Hackfest 2019/Lists2019-07-01T06:15:45Z<p>Colin Finck: /* Ideas */</p>
<hr />
<div>See [[ReactOS Hackfest 2019]] for the general information about the event.<br />
<br />
== Registrations ==<br />
Please register for the event by putting your name and details into this list.<br />
<br />
'''Note''' official dates are: from Thursday, 15th August to Tuesday, 20th August 2019<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Days<br />
! Travelling to the event<br />
! Place to stay<br />
! Interested in shared aptmt<br />
|-<br />
|Colin Finck<br />
|Wednesday through Wednesday<br />
|By train<br />
|At a friend's place<br />
|no<br />
|-<br />
|Daniel Reimer<br />
|Probably Thursday through Saturday<br />
|Probably by train<br />
|Probably at .... not sure yet<br />
|yes<br />
|-<br />
|Mark Jansen<br />
|Probably Wednesday through Wednesday<br />
|By train<br />
|A&O?<br />
|Yes<br />
|-<br />
|Stanislav Motylkov<br />
|Thursday to Wednesday<br />
|By air<br />
|Probably at A&O Berlin Hauptbahnhof<br />
|yes<br />
|-<br />
|Konstantin Motylkov<br />
|Thursday to Wednesday<br />
|By air<br />
|Probably at A&O Berlin Hauptbahnhof<br />
|yes<br />
|-<br />
|Timo Kreuzer<br />
|Wednesday through Wednesday<br />
|By train<br />
|not sure yet<br />
| yes<br />
|-<br />
|Joachim Henze<br />
|Thursday to Sunday?<br />
|By train<br />
|Probably at A&O Berlin Hauptbahnhof<br />
| no<br />
|-<br />
|Victor Perevertkin<br />
|Thursday to Wednesday<br />
|By air<br />
|Don't know yet<br />
|yes<br />
|-<br />
|Aleksandr Rechitskii <br />
|Thursday to Wednesday +/- 2 days<br />
|By air<br />
|Don't know yet<br />
|highly probably yes<br />
|}<br />
<br />
== Shirts ==<br />
It's finally time to print some new ReactOS shirts. If you make it to the Hackfest and want a free shirt, please put yourself and your desired size on this list.<br />
<br />
Shirts will be based on [https://www.spreadshirt.de/gestalten/detail/m%C3%A4nner-premium-t-shirt-PT812 this Spreadshirt product].<br />
Check the link for exact sizes.<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Shirt Size<br />
|-<br />
|Colin Finck<br />
|L<br />
|-<br />
|Mark Jansen<br />
|L (I think?)<br />
|-<br />
|Joachim Henze<br />
|L (both: hoodie + TShirt please)<br />
|-<br />
|Stanislav Motylkov<br />
|3XL<br />
|-<br />
|Timo Kreuzer<br />
|L<br />
|-<br />
|Victor Perevertkin <br />
|Should be M<br />
|-<br />
|Aleksandr Rechitskii <br />
|Should be M, L also fits<br />
|-<br />
|Daniel Reimer<br />
|XXL<br />
|-<br />
|Thomas Faber<br />
|M<br />
|}<br />
<br />
== What to do differently this year? ==<br />
This is the 4th iteration of the Hackfest, and based on this experience, you may have some ideas on what to do differently this year compared to the previous ones.<br />
<br />
* Let's give Timo one of the keys, so the Hackfest is open 24/7 :P - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
* Let's all have a meal together sponsored by ReactOS Deutschland e.V. We even get donations these days specifically for that purpose :) - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
<br />
== Talks ==<br />
Does any of you want to present something at the Hackfest? Then please add yourself to this list:<br />
<br />
* Nothing yet<br />
<br />
== Ideas ==<br />
Add everything you want to have discussed/worked on during the Hackfest to this list. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
* Work on the new website [[User:Learn more|Mark Jansen]] ([[User talk:Learn more|talk]]) 11:08, 19 April 2019 (UTC)<br />
* Bring down the amount of open PR's [[User:Learn more|Mark Jansen]] ([[User talk:Learn more|talk]]) 11:08, 19 April 2019 (UTC)<br />
* Hack the original Xbox to revive the [[Xbox Port]] --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Implement Wi-Fi WPA/WPA2 support (I have some ideas ^^) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* Get remaining x64 issues resolved (e.g. resource list parsing) (Timo)<br />
* Prepare new RosBE with GCC 8 and new CMake (Timo)<br />
* Fix tests to make WHS testbot green (Timo)<br />
* Test the fix from https://github.com/reactos/reactos/pull/1701 thoroughly on as much hardware as possible, check if this is done in other i8042 drivers as well, and finally get rid of these long-standing per-device hacks - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 06:15, 1 July 2019 (UTC)<br />
<br />
== Ideas from the community ==<br />
* Work on ReactX (Optional) | [[User:Mrmajik45|Mrmajik45]] ([[User talk:Mrmajik45|talk]]) 16:31, 11 April 2019 (UTC)<br />
* Test viruses in reactos because why not. [[User:Iamperson98|Iamperson98]] ([[User talk:Iamperson98|talk]]) 17:57, 5 May 2019 (UTC)<br />
<br />
== Hardware ==<br />
If you bring any specific hardware or need some for your work, which you cannot bring yourself, just add it to this list. We can centrally organize this then. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
<br />
* An original Xbox gaming console (hardware revision 1.0, if possible), Daniel will bring a version 1.1 --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
** An adapter to connect the Xbox to computer display (Daniel has a OSSC and a Framemeister for VGA conversion) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
** Two USB-to-Xbox adapters for USB keyboard and mouse (Daniel odered @ eBay three of em, hopefully arrived till then...) --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)<br />
* A notebook which have a Wi-Fi driver confirmed working in ReactOS --[[User:Binarymaster|binarymaster]] ([[User talk:Binarymaster|talk]]) 14:10, 25 June 2019 (UTC)</div>Colin Finckhttps://reactos.org/wiki/index.php?title=ReactOS_Hackfest_2019/Lists&diff=48668ReactOS Hackfest 2019/Lists2019-06-05T06:42:28Z<p>Colin Finck: /* Shirts */</p>
<hr />
<div>See [[ReactOS Hackfest 2019]] for the general information about the event.<br />
<br />
== Registrations ==<br />
Please register for the event by putting your name and details into this list.<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Days<br />
! Travelling to the event<br />
! Place to stay<br />
|-<br />
|Colin Finck<br />
|Wednesday through Wednesday<br />
|By train<br />
|At a friend's place<br />
|-<br />
|Daniel Reimer<br />
|Probably Thursday through Saturday<br />
|Probably by train<br />
|Probably at .... not sure yet<br />
|-<br />
|Mark Jansen<br />
|Probably Wednesday through Wednesday<br />
|By train<br />
|A&O<br />
|-<br />
|}<br />
<br />
== Shirts ==<br />
It's finally time to print some new ReactOS shirts. If you make it to the Hackfest and want a free shirt, please put yourself and your desired size on this list.<br />
<br />
Shirts will be based on [https://www.spreadshirt.de/gestalten/detail/m%C3%A4nner-premium-t-shirt-PT812 this Spreadshirt product].<br />
Check the link for exact sizes.<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Shirt Size<br />
|-<br />
|Colin Finck<br />
|L<br />
|-<br />
|Mark Jansen<br />
|L (I think?)<br />
|-<br />
|Stanislav Motylkov<br />
|XXXL<br />
|}<br />
<br />
== What to do differently this year? ==<br />
This is the 4th iteration of the Hackfest, and based on this experience, you may have some ideas on what to do differently this year compared to the previous ones.<br />
<br />
* Let's give Timo one of the keys, so the Hackfest is open 24/7 :P - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
* Let's all have a meal together sponsored by ReactOS Deutschland e.V. We even get donations these days specifically for that purpose :) - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
<br />
== Talks ==<br />
Does any of you want to present something at the Hackfest? Then please add yourself to this list:<br />
<br />
* Nothing yet<br />
<br />
== Ideas ==<br />
Add everything you want to have discussed/worked on during the Hackfest to this list. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
* Work on the new website [[User:Learn more|Mark Jansen]] ([[User talk:Learn more|talk]]) 11:08, 19 April 2019 (UTC)<br />
* Bring down the amount of open PR's [[User:Learn more|Mark Jansen]] ([[User talk:Learn more|talk]]) 11:08, 19 April 2019 (UTC)<br />
<br />
<br />
== Ideas from the community ==<br />
* Work on ReactX (Optional) | [[User:Mrmajik45|Mrmajik45]] ([[User talk:Mrmajik45|talk]]) 16:31, 11 April 2019 (UTC)<br />
* Test viruses in reactos because why not. [[User:Iamperson98|Iamperson98]] ([[User talk:Iamperson98|talk]]) 17:57, 5 May 2019 (UTC)<br />
<br />
== Hardware ==<br />
If you bring any specific hardware or need some for your work, which you cannot bring yourself, just add it to this list. We can centrally organize this then. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
<br />
* Nothing yet</div>Colin Finckhttps://reactos.org/wiki/index.php?title=ReactOS_Hackfest_2019/Lists&diff=48511ReactOS Hackfest 2019/Lists2019-05-05T18:06:32Z<p>Colin Finck: /* Registrations */</p>
<hr />
<div>See [[ReactOS Hackfest 2019]] for the general information about the event.<br />
<br />
== Registrations ==<br />
Please register for the event by putting your name and details into this list.<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Days<br />
! Travelling to the event<br />
! Place to stay<br />
|-<br />
|Colin Finck<br />
|Wednesday through Wednesday<br />
|By train<br />
|At a friend's place<br />
|-<br />
|Daniel Reimer<br />
|Probably Thursday through Saturday<br />
|Probably by train<br />
|Probably at .... not sure yet<br />
|-<br />
|Mark Jansen<br />
|Probably Wednesday through Wednesday<br />
|By train<br />
|A&O<br />
|-<br />
|}<br />
<br />
== Shirts ==<br />
It's finally time to print some new ReactOS shirts. If you make it to the Hackfest and want a free shirt, please put yourself and your desired size on this list.<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Shirt Size<br />
|-<br />
|Colin Finck<br />
|L<br />
|-<br />
|Mark Jansen<br />
|L (I think?)<br />
|}<br />
<br />
== What to do differently this year? ==<br />
This is the 4th iteration of the Hackfest, and based on this experience, you may have some ideas on what to do differently this year compared to the previous ones.<br />
<br />
* Let's give Timo one of the keys, so the Hackfest is open 24/7 :P - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
* Let's all have a meal together sponsored by ReactOS Deutschland e.V. We even get donations these days specifically for that purpose :) - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
<br />
== Talks ==<br />
Does any of you want to present something at the Hackfest? Then please add yourself to this list:<br />
<br />
* Nothing yet<br />
<br />
== Ideas ==<br />
Add everything you want to have discussed/worked on during the Hackfest to this list. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
* Work on the new website [[User:Learn more|Mark Jansen]] ([[User talk:Learn more|talk]]) 11:08, 19 April 2019 (UTC)<br />
* Bring down the amount of open PR's [[User:Learn more|Mark Jansen]] ([[User talk:Learn more|talk]]) 11:08, 19 April 2019 (UTC)<br />
<br />
<br />
== Ideas from the community ==<br />
* Work on ReactX (Optional) | [[User:Mrmajik45|Mrmajik45]] ([[User talk:Mrmajik45|talk]]) 16:31, 11 April 2019 (UTC)<br />
* Test viruses in reactos because why not. [[User:Iamperson98|Iamperson98]] ([[User talk:Iamperson98|talk]]) 17:57, 5 May 2019 (UTC)<br />
<br />
== Hardware ==<br />
If you bring any specific hardware or need some for your work, which you cannot bring yourself, just add it to this list. We can centrally organize this then. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
<br />
* Nothing yet</div>Colin Finckhttps://reactos.org/wiki/index.php?title=ReactOS_Hackfest_2019/Lists&diff=48346ReactOS Hackfest 2019/Lists2019-04-09T07:43:02Z<p>Colin Finck: Created page with "== Registrations == Please register for the event by putting your name and details into this list. {| class="wikitable mw-datatable" ! Name ! Days ! Travelling to the event !..."</p>
<hr />
<div>== Registrations ==<br />
Please register for the event by putting your name and details into this list.<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Days<br />
! Travelling to the event<br />
! Place to stay<br />
|-<br />
|Colin Finck<br />
|Probably Wednesday through Wednesday<br />
|Probably by train<br />
|Probably at a friend's place<br />
|}<br />
<br />
== Shirts ==<br />
It's finally time to print some new ReactOS shirts. If you make it to the Hackfest and want a free shirt, please put yourself and your desired size on this list.<br />
<br />
{| class="wikitable mw-datatable"<br />
! Name<br />
! Shirt Size<br />
|-<br />
|Colin Finck<br />
|L<br />
|}<br />
<br />
== What to do differently this year? ==<br />
This is the 4th iteration of the Hackfest, and based on this experience, you may have some ideas what to do differently this year compared to the previous ones.<br />
<br />
* Let's give Timo one of the keys, so the Hackfest is open 24/7 :P - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
* Let's all have a meal together sponsored by ReactOS Deutschland e.V. We even get donations these days specifically for that purpose :) - [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) 07:42, 9 April 2019 (UTC)<br />
<br />
== Talks ==<br />
Does any of you want to present something at the Hackfest? Then please add yourself to this list:<br />
<br />
* Nothing yet<br />
<br />
== Ideas ==<br />
Add everything you want to have discussed/worked on during the Hackfest to this list. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
<br />
* Nothing yet<br />
<br />
== Hardware ==<br />
If you bring any specific hardware or need some for your work, which you cannot bring yourself, just add it to this list. We can centrally organize this then. Finish your comment with <nowiki>~~~~</nowiki> to add your signature.<br />
<br />
* Nothing yet</div>Colin Finckhttps://reactos.org/wiki/index.php?title=ReactOS_Hackfest_2019&diff=48345ReactOS Hackfest 20192019-04-09T07:33:15Z<p>Colin Finck: Created page with "The ReactOS Hackfest goes into its fourth round! Join us again from Thursday, 15th August to Tuesday, 20th August 2019 in the capital of Germany. Let's hack the week away impr..."</p>
<hr />
<div>The ReactOS Hackfest goes into its fourth round! Join us again from Thursday, 15th August to Tuesday, 20th August 2019 in the capital of Germany.<br />
Let's hack the week away improving ReactOS, killing 50+ open PRs, and enjoying some beers together :)<br />
<br />
'''It is now time to plan your trip! Flights and train tickets won't get cheaper.'''<br />
<br />
== Facts ==<br />
* Date: Thursday, 15th August to Tuesday, 20th August 2019<br />
* Location:<br><br>[http://www.openstreetmap.org/?lat=52.53443&lon=13.358479&zoom=18&layers=M Individual Network Berlin e.V.]<br>Lehrter Straße 53<br>10557 Berlin<br><br><br />
* '''<big>YOU</big>''' decide what we focus on during these days. Add your ideas to the [[ReactOS Hackfest 2019/Lists|Wiki page]]!<br />
* Look how it was last time: [[ReactOS Hackfest 2018]]<br />
<br />
== What you should bring ==<br />
* Your development laptop and additional ReactOS testing laptops if required. If you bring a desktop computer or need another computer/laptop, please put that on the [[ReactOS Hackfest 2019/Lists|list]].<br />
* An Ethernet cable if you need wired Internet access.<br />
<br />
== Travelling to Berlin ==<br />
=== By plane ===<br />
Berlin currently has two international airports, Berlin-Tegel (TXL) and Berlin-Schönefeld (SXF).<br />
Reaching the event takes about the same time by public transport, so you can freely choose an airport based on the flights.<br />
<br />
=== By public transport ===<br />
The location is just next to the bus stops ''Kruppstr. (Berlin)'' and ''Quitzowstr. (Berlin)''.<br />
Even a walk from Berlin's central train station (''Berlin Hauptbahnhof'') is just 20 minutes.<br />
<br />
=== By car ===<br />
Parking close to the event and in most spots in Berlin may be subject to high fees, so I highly recommend going by public transport.<br />
<br />
== Accommodation ==<br />
The [http://www.aohostels.com/en/berlin/berlin-hauptbahnhof A&O Berlin Hauptbahnhof] (Lehrter Straße 12) is an affordable hostel close to the event. It should be the best option for most participants.<br />
<br />
Please contact Colin if you need financial support for your travel and accommodation expenses. ReactOS Deutschland e.V. is able to cover some. Participation mustn't be a matter of your financial situation.<br />
<br />
== Ideas and attendees ==<br />
See [[ReactOS_Hackfest_2019/Lists]]<br />
<br />
== Contact ==<br />
If you have any open questions, please send an E-Mail to [mailto:colin@reactos.org colin@reactos.org]<br />
<br />
[[Category:Community]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Hackfest&diff=48344Hackfest2019-04-09T07:14:06Z<p>Colin Finck: </p>
<hr />
<div>There have been several ReactOS Hackfests over the years:<br />
<br />
* [[ReactOS Hackfest 2019]]<br />
* [[ReactOS Hackfest 2018]]<br />
* [[ReactOS Hackfest 2017]]<br />
* [[ReactOS Hackfest 2015]]<br />
<br />
[[Category:Community]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=0.4.11&diff=480190.4.112019-03-03T12:36:34Z<p>Colin Finck: /* Source Information */</p>
<hr />
<div>== General Information ==<br />
{|<br />
|-<br />
|Used Build Environment:<br />
|[[ReactOS Build Environment]] 2.1.2 - GCC 4.7.2 - Unix<br />
|-<br />
|Release Engineers:<br />
|Joachim Henze (aka reactosfanboy)<br />
|}<br />
<br />
== Source Information ==<br />
{|<br />
|-<br />
|Release Date:<br />
|04 March 2019<br />
|-<br />
|Branched from git master:<br />
|2018-12-09 after 0.4.11-dev-948-gde7c959<br />
|-<br />
|Final source:<br />
|git [https://github.com/reactos/reactos/compare/releases/0.4.11 0.4.11-release] https://github.com/reactos/reactos/commit/ed7305b9cf6bf2a8bd5fa806a1cbab0d28c9df68<br />
|}<br />
<br />
== Links ==<br />
* [[ChangeLog-0.4.11|ChangeLog for this Release]]<br />
* [[Tests for 0.4.11|Tests for this Release]]<br />
* [[Community Changelog-0.4.11|Community Changelog for this Release]]<br />
{{Navigation Versions}}</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Google_Summer_of_Code_2019_Ideas&diff=47842Google Summer of Code 2019 Ideas2019-02-06T11:50:52Z<p>Colin Finck: Merge "Graphics" and "Audio" to "Audio/Video" to comply with the maximum of 10 proposal tags in the GSoC application form</p>
<hr />
<div>This page lists all the project ideas for our Google Summer of Code 2019 application. Students should also visit our [[Google Summer of Code 2019|general GSoC 2019 page]] for more information including a Student Guide and our contact information.<br />
<br />
== Your Own Idea! ==<br />
We are eager to hear about your proposal to improve either ReactOS or its infrastructure. Come and propose your project on the ReactOS developers mailing-list or on IRC to get feedback about its feasibility. If your project is doable, we will be glad to provide you with a mentor so you can succeed in your project.<br />
<br />
Don't forget that ReactOS is a big project and application fields are wide. You can choose between user-mode or kernel-mode development, between application, or dll/driver development, or between working on ReactOS itself or on extra tools used by developers for their daily work on ReactOS. Also if all you prefer is web development, we also have needs there. <br />
<br />
;Skills needed<br />
: Yours<br />
<br />
;Difficulty<br />
: The one you'll have set<br />
<br />
;Extras<br />
: You'll be working on your own project and be able to choose its direction along with your mentor :-).<br />
<br />
== Networking ==<br />
=== NDIS Miniport Drivers for Common Network Cards ===<br />
Network card drivers are important for a good out-of-box experience since they are the key requirement for the user's ability to download additional drivers and applications. ReactOS currently includes drivers for AMD PCnet, Realtek RTL8139 and NE2000, with an Intel E1000 driver under development.<br />
<br />
However, these drivers don't cover all modern computer systems. Prominent examples are the Realtek RTL8169/8110 as well as the Broadcom BCM57XX Gigabit Ethernet adapters, which are very common these days. The latter one is also used by the official ReactOS demo laptop (Dell Latitude D531).<br />
ReactOS also lacks a driver for the DC21x4, which is the network adapter emulated by Microsoft Virtual PC/Hyper-V.<br />
A stretch goal may be getting basic NDIS 6.0 support for drivers.<br />
<br />
;Benefits<br />
: "Just works" experience on many physical computers and laptops as well as virtual machines.<br />
<br />
;References<br />
: [https://docs.microsoft.com/en-us/previous-versions/windows/hardware/network/ff557065(v=vs.85) MSDN: NDIS 5.1 Miniport Drivers]<br />
: [https://github.com/reactos/reactos/tree/master/drivers/network/dd Existing built-in network driver sources]<br />
: [https://stuff.mit.edu/afs/sipb/contrib/doc/specs/ic/network/dc21041.pdf Digital Semiconductor 21041 PCI Ethernet LAN Controller Hardware Reference Manual]<br />
: [https://wiki.osdev.org/RTL8169 Start point for RTL8169]<br />
: [http://people.redhat.com/ivecera/RTL8110S-8169S%20Specification%201.3.pdf RTL8169 specification]<br />
: [https://github.com/haiku/haiku/tree/master/src/add-ons/kernel/drivers/network Driver Overview of Haiku]<br />
: [https://github.com/haiku/haiku/tree/abb59d7351c7ddb50c63c40430a82d94fa61917a/src/add-ons/kernel/drivers/network/rtl8169 RTL8169 driver for haiku in 1000 lines]<br />
: [https://www.codeproject.com/Articles/24384/NDIS-sample-miniport-driver-for-realtek An open source RTL8169 NDIS 6.0 driver]<br />
: [https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-0 Overview of NDIS 6.0]<br />
: [https://docs.microsoft.com/de-de/previous-versions/windows/hardware/network/porting-a-miniport-driver-to-ndis-6-0 Porting drivers from NDIS5 to NDIS6 - for getting an overview what needs to be done/adapted]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Kernel driver and/or NDIS programming experience<br />
: Experience working with hardware specification documents<br />
<br />
=== Fundamental WiFi components ===<br />
ReactOS already supports the majority of drivers for cabled Ethernet controllers.<br />
Supporting wireless WiFi controllers requires additional components for enumerating networks, handling a connection and encrypting the communication.<br />
These are almost non-existing in ReactOS right now, and WPA encryption is entirely unsupported.<br />
Having WiFi components would greatly improve the ReactOS experience on mobile computers.<br />
<br />
The student should implement the basic components for WiFi connections found in modern Windows versions (NT6 and later). The components should support connecting to unencrypted and encrypted WEP/WPA/WPA2 networks.<br />
We're deliberately not targeting WinXP (NT5) here, because of major architectural changes in the WiFi components since then.<br />
<br />
;References<br />
: [https://technet.microsoft.com/de-de/library/cc766215(v=ws.10).aspx#BKMK_AppndxB Windows Vista DLLs and function descriptions]<br />
: [https://msdn.microsoft.com/en-us/library/windows/hardware/ff543936(v=vs.85).aspx 802.11 Wireless LAN Objects]<br />
: [https://msdn.microsoft.com/en-us/library/windows/desktop/ms706274(v=vs.85).aspx Native Wifi functions]<br />
: [http://redplait.blogspot.de/2010/11/wlanmsmdll-rpc-interfaces.html wlanmsm.dll RPC Interfaces]<br />
: [https://sourceforge.net/p/mingw-w64/mingw-w64/ci/4a306baa4a206c9314bdc129e98abfa1aebe2b0e/tree/mingw-w64-crt/libarm32/wlansec.def Exports of wlansec.dll]<br />
: [http://securityxploded.com/wifi-password-secrets.php WiFi Password Secrets]<br />
<br />
;Needed Skills<br />
: Software Development in C and under Windows<br />
: Familiarity with Windows networking<br />
: Previous experience with RPC would be a plus<br />
<br />
=== Automatic Proxy Configuration ===<br />
'''Useful for:''' End-users<br />
<br />
Certain network configurations, especially in businesses, require proxy servers to access the internet. If the local network is setup up appropriately, modern operating systems can automatically determine the correct proxy server to use. This is made possible through Proxy Auto-Configuration (PAC) files and the Web Proxy Auto-Discovery Protocol (WPAD).<br />
<br />
;Benefits<br />
: Automatic "just works" internet access in additional environments<br />
: Networking support in business settings<br />
<br />
;References<br />
: [https://en.wikipedia.org/wiki/Web_Proxy_Auto-Discovery_Protocol Wikipedia: WPAD]<br />
: [https://web.archive.org/web/20070602031929/http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html Proxy Client Autoconfig File Format]<br />
: [https://en.wikipedia.org/wiki/Proxy_auto-config Wikipedia: PAC]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Familiarity with Win32 APIs<br />
: Familiarity with relevant technologies like DHCP and JavaScript<br />
<br />
=== Windows Remote Management ===<br />
'''Useful for:''' End-users and developers<br />
<br />
WinRM is a Web Service that allows remote management of Windows machines. This includes authentication as well as remote execution of PowerShell and other scripts.<br />
<br />
WinRM can be seen as Windows's equivalent to SSH, and it is useful for remote administration, automated machine setup as well as test automation.<br />
<br />
;Benefits<br />
: External automation tools such as Ansible could control ReactOS machines<br />
: Automated testing could make use of WinRM, both in VMs and on real hardware.<br />
<br />
;References<br />
: [https://msdn.microsoft.com/en-us/library/aa384426(v=vs.85).aspx MSDN: Windows Remote Management]<br />
: [https://msdn.microsoft.com/en-us/library/aa384470(v=vs.85).aspx MSDN: WS-Management Protocol]<br />
: [http://www.dmtf.org/standards/published_documents/DSP0226_1.1.pdf WS-Management Specification]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Familiarity with Win32 APIs and Networking<br />
: Familiarity with web service development, e.g. HTTP, SOAP, XML<br />
<br />
=== Integrating SMB into ReactOS ===<br />
'''Useful for:''' End-users and developers<br />
<br />
SMB/CIFS is omnipresent for file sharing under Windows. It's one of the features new users to ReactOS always expect and then cannot find anywhere. <br />
<br />
As such, ReactOS finally needs an implementation of SMB properly integrated into the operating system. SMB heavily relies on RPC and UNC paths and previous work in both areas exists. A potential developer should base the work on the mature Samba Open-Source implementation of SMB. However, Samba is developed for UNIX systems and therefore parts of its code require careful porting to create a native implementation for ReactOS.<br />
<br />
;Benefits<br />
: Having SMB would highly improve ReactOS' abilities to transfer files over the network, both for users and developers! It would also lay the groundwork for other Windows network services such as Printer Sharing.<br />
<br />
;References<br />
: [https://wiki.samba.org/index.php/Main_Page Samba Wiki]<br />
: [https://msdn.microsoft.com/en-us/library/cc246231.aspx MS-SMB Server Message Block (SMB) Protocol Open Specification] (and related ones on this site) <br />
: [http://freecode.com/projects/samba-tng Samba-TNG] ([http://web.archive.org/web/20140704112636/http://freecode.com/projects/samba-tng archive]) was an effort to rewrite unix samba libraries into a more NT like architecture. They already work in Windows/ReactOS, archival copies are available here [http://encodedpr.com/files/reactos/source%20code/samba-tng-0.5-rc1.zip source] and [http://encodedpr.com/files/reactos/tools/samba-tng-0.5-rc1_bin.zip binaries]. There is even a [https://www.youtube.com/watch?v=UhFIgSIKPOU video] of how to use it.<br />
: [http://wiki.samba-tng.org/ Samba-TNG Wiki] ([http://web.archive.org/web/20160323191842/https://wiki.samba-tng.org/doku.php/start archive])<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Familiarity with Win32 APIs and Networking<br />
: Experience with gluing code of different projects together<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Terminal Services ===<br />
'''Useful for:''' End-users and developers<br />
<br />
Implement support for terminal services, allowing inbound remote desktop connections to ReactOS. This encompasses implementation of input and video drivers to handle output over the network.<br />
<br />
The terminal services system provides functionality for securely connecting remote clients and servers, for channeling communication between components of remote clients and servers, and for managing servers. It implements the Remote Desktop Protocol (RDP) which is a multi-channel protocol that allows users of a remote client to connect to a server over a network.<br />
<br />
;Benefits<br />
: Terminal services support would allow ReactOS to serve as a terminal server/thin client server. Organizations that wish to provide a shared workstation with Windows would have a free alternative that does not have complex licensing terms covering multi-session usage. The display driver for terminal services can also be used to support fast user-switching and even possibly multi-monitor support.<br />
<br />
;References<br />
: [[ReactOS Terminal Services]]<br />
: https://github.com/FreeRDP/FreeRDP/wiki<br />
<br />
;Skills needed<br />
: Network development experience.<br />
: Driver development experience.<br />
: Knowledge/familiarity with RDP protocol.<br />
<br />
== Storage ==<br />
=== Plug and Play (PnP) Storage Stack ===<br />
Right now, PnP support in the storage stack is close to being there. mountmgr.sys has already been implemented, and recent tests show that plugging USB sticks work. However, "traditional" storage stack is not PnP-aware, meaning that hot-plugging a SATA or SCSI device is not possible.<br />
Alleviating PnP support in scsiport would be the first task of this project. Then, turning uniata into a PnP-aware driver would permit SATA device hot-plugging. Finally, PnP-aware "cdrom_new" and "disk_new" drivers can be activated.<br />
<br />
;References<br />
: [http://msdn.microsoft.com/en-us/library/windows/hardware/ff565353(v=vs.85).aspx SCSI Port API]<br />
: [https://github.com/Microsoft/Windows-driver-samples/tree/master/storage Windows Open-Source Storage Driver Samples based on the PnP Storage Stack]<br />
: [http://alter.org.ua/soft/win/uni_ata/ Universal ATA driver with PATA/SATA/AHCI support (opensource)]<br />
: [https://github.com/vgalnt/reactos/tree/boot_with_nt_drv Vadim Galyant's branch with major PnP overhaul. These code is much more close to supporting disk_new and cdrom_new, but still needs a lot of work]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Experience with developing low-level Kernel-Mode hardware drivers<br />
: Previous experience with Windows Storage APIs would be a huge plus<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
== Audio/Video ==<br />
=== Get video drivers from AMD/ATI/NVIDIA running stable ===<br />
As of today, most original drivers from GPU manufacturers do not work at all or only very unstable. Because of that, even our "demo laptop" (a Dell D531) with its ATI Radeon Xpress X1270 is very slow. This project is for getting such a driver up and running in a stable manner. The first step would be to fix the bugs in the PnP manager (e.g. as https://jira.reactos.org/browse/CORE-14464) - some patches are already around (e.g. vgal's ones). Then the base driver needs to get running more stable - which will involve fixes e.g. in win32k (e.g. more parameter checks) or other components (which emit wrong parameter). As extras, the OpenGL part could be tried.<br />
<br />
;References<br />
: Reported bugs for the ATI driver: https://jira.reactos.org/browse/CORE-14479?jql=labels%20%3D%20ATI<br />
: ATI Driver: https://mifritscher.de/austausch/reactos/R163694.EXE<br />
<br />
;Benefits<br />
: A much faster demo laptop<br />
: Support for a major vendor of GPUs<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Experience with hardware drivers<br />
: As a plus: Experience with the video stack<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Intel High Definition Audio Bus Driver ===<br />
Implement support for the Intel High Definition Audio specification for sound cards. ReactOS has the beginnings of the HD Audio Bus driver but it needs to be completed and tested.<br />
<br />
;Benefits<br />
: Modern audio cards use the Intel High Definition Audio specification. Therefore they rely on a bus driver to communicate with the audio hardware. The goal is to complete the bus driver which supports those new cards. The driver needs to work on a Microsoft NT system, and be ready to support ReactOS now or in the future.<br />
<br />
;References<br />
: Existing hdaudbus driver: https://github.com/reactos/reactos/tree/master/drivers/wdm/audio/hdaudbus<br />
: HD Audio Device Driver Interface whitepaper: http://msdn.microsoft.com/en-us/windows/hardware/gg462966<br />
: Programming the HD Audio DDI: http://msdn.microsoft.com/en-us/library/ff536442%28v=vs.85%29.aspx<br />
: HD Audio Bus Drivers: http://msdn.microsoft.com/en-us/library/ff536434%28v=vs.85%29.aspx<br />
<br />
;Skills needed<br />
: Kernel driver programming experience<br />
: Bus driver programming experience<br />
: Familiarity with Intel HD Audio specification<br />
: Audio kernel streaming<br />
<br />
=== Audio Mixer ===<br />
Implement support for mixing of audio streams.<br />
;Benefits<br />
: An audio mixer is responsible for routing of multiple audio streams. This would be very beneficial to ReactOS as audio driver support has improved yet the use of these drivers is limited by the lack of an audio mixer. At the end of the project multiple audio streams should be able to be played at the same time.<br />
<br />
;References<br />
: [http://msdn.microsoft.com/en-us/library/ms705739(v=vs.85).aspx Audio Mixer Reference]<br />
: [http://www.microsoft.com/downloads/en/details.aspx?FamilyID=D7667686-8467-4B10-8713-BF0281536320&amp%3Bdisplaylang=en DirectKS Sample Application download]<br />
: [http://msdn.microsoft.com/en-us/library/ms685967%28v=VS.85%29.aspx Programming Services]<br />
: "Secret Rabbit Code" (SRC) [http://www.mega-nerd.com/SRC/ Sample Rate Converter] aka libsamplerate<br />
<br />
;Skills needed<br />
: Windows Services familiarity<br />
: Basic Audio file format familiarity<br />
: Audio mixing algorithms / libraries familiarity<br />
: Basic kernel streaming familiarity<br />
<br />
== Durability ==<br />
=== Kernel mode test suite ===<br />
'''Useful for:''' Developers<br />
<br />
Improve our existing kernel mode test suite (created by a previous successful GSoC student) by adding comprehensive new tests in areas previously untouched by the test suite such as the kernel caching APIs and PnP. The goal is to extensively test Native API functions exported by the kernel. Reference behavior could be checked by running the test suite against the corresponding Windows operating system.<br />
<br />
;Benefits<br />
: Improved system stability.<br />
: More information about undocumented behavior.<br />
: Improved compatibility with third party drivers.<br />
<br />
;Skills needed<br />
: Native API knowledge<br />
: NT driver development skills<br />
<br />
=== Win32k test suite ===<br />
'''Useful for:''' Developers<br />
<br />
Right now we have basically no tests that cover the win32k module. As win32k is the cornerstone of the interface between the Win32 Subsystem and the display drivers, lack of tests leads to inconsistency, guesswork and frustration when it comes to improving driver compatibility.<br />
A virtual display driver (à la kmtest.sys) allows us to test the functionality and behavior of win32k. If time permits, it would also be possible to add a mechanism to test videoprt.sys functionality, and the relationship between a display driver and its miniport counterpart.<br />
<br />
;References<br />
: [http://msdn.microsoft.com/en-us/library/windows/hardware/ff570585%28v=vs.85%29.aspx Windows 2000 display driver model reference]<br />
<br />
;Benefits<br />
: Improved stability.<br />
: More information about undocumented behavior.<br />
: Improved compatibility with third party drivers.<br />
<br />
;Skills needed<br />
: Display drivers development experience<br />
: Win32 API knowledge<br />
<br />
== System Enhancements ==<br />
=== UI Automation API ===<br />
Accessibility is an important part of any operating system. Windows supports internal and external accessibility tools using its Automation API.<br />
<br />
Adding support for these (currently completely absent) APIs to ReactOS would set the foundation for an OS usable by everyone. One approach for a project may be attempting to get the open source screen reader software "NVDA" to run on ROS.<br />
<br />
Parts of this work may be suitable for submission to Wine, which would extend the usefulness beyond just ReactOS as well as simplify future maintenance of those components.<br />
<br />
;Benefits<br />
: Applications depending on these features may start to work in ReactOS<br />
: Adding support for accessibility shows that we care about all our users<br />
<br />
;References<br />
: [https://msdn.microsoft.com/en-us/library/windows/desktop/dd561932(v=vs.85).aspx Windows Automation API Overview]<br />
: [https://msdn.microsoft.com/en-us/library/windows/desktop/ee684009(v=vs.85).aspx MSDN: UI Automation]<br />
: [https://www.nvaccess.org/ NVDA Screen Reader]<br />
<br />
;Skills needed<br />
: Development in C/C++ and under Windows<br />
: COM knowledge<br />
: Basic debugging skills<br />
<br />
=== Search Shell extension ===<br />
Our current Explorer still lacks a shell search band on the left. It would make the user able to search files, documents, or objects just like Windows does. It must be implemented compatible to the Windows Explorer interfaces to maintain compatibility with existing applications and existing search providers relying on it.<br />
<br />
;Benefits<br />
: This would make our Explorer feel more like the original one and be an user improvement<br />
: Great compatibility test for our browseui/explorer infrastucture.<br />
<br />
;Skills needed<br />
: Development in C/C++ and under Windows<br />
: Knowledge of COM, ATL, and shell APIs would be a plus.<br />
: Able to work without documentation, and only with debugging traces, WinDbg/API monitor<br />
<br />
=== Paravirtualization Support ===<br />
Virtual machines are increasingly common in all fields of computing. To increase VM performance, paravirtualization bypasses the emulation of traditional hardware (such as specific network or storage interfaces, or even the entire PCI bus) and uses specially crafted drivers in the guest OS to more directly interface with the hypervisor. The guest OS kernel can also be modified to directly interact with the hypervisor for CPU and memory management operations, leading to improved performance.<br />
<br />
There are many choices of projects in this space, such as:<br />
: Making Xen's open source drivers work in ReactOS<br />
: Creating an initial set of drivers to support "enlightenment" under Hyper-V<br />
: Enhance the kernel to make use of hypervisor functionality for low-level operations (e.g. via VMI)<br />
: Testing and integrating VirtIO drivers, VirtualBox Guest Additions and/or open-vm-tools into ReactOS<br />
: Implementing automatic hypervisor detection during setup or in the applications manager to simplify the installation of the appropriate VM guest drivers<br />
<br />
Note that these projects can vary greatly in difficulty. Please consult with a mentor to ensure your skill set and the scope of your proposal match up to make a realistic project.<br />
<br />
;Benefits<br />
: Avoid non-free or unavailable alternative drivers<br />
: Improved out-of-the-box functionality in virtual machines<br />
: Integration of kernel features that may improve VM performance<br />
<br />
;References<br />
: [https://www.xenproject.org/developers/teams/windows-pv-drivers.html Xen Windows PV Drivers]<br />
: [https://github.com/vmware/open-vm-tools open-vm-tools]<br />
: [https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Additions/WINNT VirtualBox Guest Additions]<br />
: [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/hv Linux Hyper-V drivers]<br />
: [https://lwn.net/Articles/175706/ The VMI virtualization interface]<br />
<br />
;Skills needed<br />
: Experience with the Hypervisor of your choice, and preferably its paravirtualization interface<br />
: Development in C and under Windows<br />
<br />
=== NT6 recycle bin support ===<br />
In a (much) older GSOC project recycle bin support was added for nt5 operating systems. Now it is time to add support for reading and writing in recycle bin created by more modern operating systems.<br />
<br />
;Note<br />
: This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
=== WebKit-based MSHTML implementation ===<br />
MSHTML is the central component for rendering HTML pages in applications written for Windows.<br />
At the moment, ReactOS depends on a heavyweight Gecko-based MSHTML implementation that needs to be installed manually.<br />
By providing a lightweight WebKit-based MSHTML implementation, ReactOS could render HTML pages out of the box.<br />
This would also benefit the CHM help system, which is based on HTML files.<br />
On top of this, a simple ReactOS Browser with tabbing and bookmarks may be sufficient for some people.<br />
<br />
;References<br />
: [https://msdn.microsoft.com/en-us/library/aa741317(v=vs.85).aspx MSHTML Reference]<br />
: [https://trac.webkit.org/wiki/WebKit2 WebKit2 API]<br />
<br />
;Benefits<br />
: Greater usability by providing a web browser and HTML-based help system out of the box.<br />
: No reliance on the heavyweight Gecko-based MSHTML sourced from WINE.<br />
<br />
;Skills needed<br />
: Development in C/C++ and under Windows<br />
: Knowledge of COM would be a plus.<br />
: Familiarity with WebKit would be a plus.<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Improving the quality of our Registry Hive implementation ===<br />
ReactOS features a basic implementation of the Windows-compatible Registry Hive format for storing system and application settings.<br />
There are two major areas where our current implementation could be improved:<br />
# When ReactOS crashes, Registry Hives easily get corrupted and render the whole system unbootable. The reliability of the Registry Hive implementation shall be improved to make the effect of crashes less severe and also recover from partly corrupted Hives.<br />
# Hives created by our mkhive tool are roughly compatible with the Windows format. The only part that is currently missing are the implementation of Security Descriptors. Implementing these could make the tool more usable and improve interoperability between Windows and ReactOS.<br />
<br />
Related components in ReactOS are the cmlib library, the ntoskrnl Cm, and the mkhive tool.<br />
<br />
;References<br />
: "The Internal Structure of the Windows Registry", MSc Thesis by Peter Norris, BSc (Hons), MBCS: http://amnesia.gtisc.gatech.edu/~moyix/suzibandit.ltd.uk/MSc/<br />
: Offline NT Password and Registry Editor: http://pogostick.net/~pnh/ntpasswd/<br />
: Bug reports [https://jira.reactos.org/browse/CORE-6762 CORE-6762], [https://jira.reactos.org/browse/CORE-9195 CORE-9195] and [https://jira.reactos.org/browse/CORE-10793 CORE-10793].<br />
<br />
;Skills needed<br />
: Development in C<br />
: Kernel-mode development<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Performance Data Registry ===<br />
Access to performance data on Windows is done primarily through the registry API, accessing something known as the performance data hive. This hive does not exist as a genuine file but is in reality a collection of data exported by various OS components, drivers, services, and even applications. Many of the performance values provided through the performance data registry is not available in any other form. The absence of support for performance counters renders many diagnostic utilities from Microsoft broken and is also an impediment to application compatibility. Condor is an example of a third party application that uses the performance data registry for process and resource usage tracking.<br />
<br />
;Benefits<br />
: Besides application compatibility, the performance data registry is one of the most difficult to use public interfaces in Windows. The layout of its data structures makes querying and accessing values a highly manual process. Documentation produced from this effort would provide better guidelines for third parties to access the performance data registry and better use the information published by the system and Microsoft's own applications such as the .NET runtime or the IIS service.<br />
<br />
;References<br />
: Description of performance counters and types in Windows 2003: http://technet.microsoft.com/en-us/library/cc776490%28WS.10%29.aspx<br />
: Performance counter data structures: http://msdn.microsoft.com/en-us/library/aa373093%28v=VS.85%29.aspx<br />
: Example code for accessing performance data through registry: http://msdn.microsoft.com/en-us/library/aa373219%28v=VS.85%29.aspx<br />
<br />
;Skills needed<br />
: Registry API familiarity.<br />
: Performance registry structure familiarity.<br />
: Performance counter familiarity.<br />
<br />
=== Management Console ===<br />
Implement Microsoft Management Console (MMC). The MMC provides an interface for various management tools, both from Microsoft and third parties, called snap-ins. These snap-ins are standalone programs dynamically loaded into an MMC console to perform a specific configuration task, such as configuring a network or managing disk drives.<br />
<br />
;Benefits<br />
: Easier snap-ins development.<br />
: Consistent user interface of management tools.<br />
: One configurable place to access key management and configuration apps.<br />
<br />
;References<br />
: [http://msdn.microsoft.com/en-us/library/bb756943.aspx What is MMC]<br />
: [http://msdn.microsoft.com/en-US/library/bb756923.aspx Developing for MMC 3.0]<br />
: [https://github.com/learn-more/reactos/commits/mmc Some early work on MMC]<br />
<br />
;Skills needed<br />
: Basic Windows development experience.<br />
: Knowledge of COM.<br />
<br />
=== XBox executable support ===<br />
ReactOS have [[Install ReactOS on XBox|original XBox port]] but it can run only Windows applications and lacks ability to run actual XBox executable XBE files. This would require adding XBE loading code and some XBox kernel specific functions.<br />
<br />
;Benefits<br />
: Ability to run XBox games and apps on your original XBox (and even on the PC!) on trusty and fully open source platform<br />
: Attract new developers with low-level programming skills to the project<br />
<br />
;References<br />
: [[Run XBox Games on ReactOS]]<br />
: [https://xboxdevwiki.net/Main_Page XBox Development Wiki]<br />
: [http://xboxdevwiki.net/Xbe XBox Executable format]<br />
<br />
;Skills needed<br />
: Development in C<br />
: Kernel-mode development<br />
: Previous experience with original XBox development would be a huge plus<br />
<br />
== Debugging Improvements ==<br />
=== PDB support for dbghelp ===<br />
Making it possible for our dbghelp read pdb files would improve our ability to debug ReactOS directly in user mode with tools like WinDbg, Process Explorer and more. We could also be able to have small tools for reporting crashes and translating addresses automatically.<br />
<br />
=== Cross-platform KD Debugger Implementation ===<br />
Microsoft's kd.exe and its GUI counterpart WinDbg allow kernel debugging Windows (and ReactOS) machines. Unfortunately these tools are Windows-only and proprietary.<br />
<br />
In order to broadly support the more advanced KD debugging protocol instead of the text-based KDBG we use in GCC builds, we need cross-platform versions of these tools.<br />
<br />
;Benefits<br />
: Support for debugging on additional hardware platforms<br />
: Improved debugging speed, easier and more reliable setups<br />
<br />
;References<br />
: [https://www.reactos.org/wiki/Techwiki:Kd ReactOS wiki: KD]<br />
: [https://github.com/radare/radare2/issues/1246 Radare2 ticket for KD support] (links to much existing work and documentation)<br />
<br />
;Skills needed<br />
: Software Development in C/C++<br />
: Kernel Debugging experience<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Support for Additional KD Transports ===<br />
ReactOS debugging is currently most effective when using a serial port. Many real hardware systems no longer have serial ports, leaving on-screen debugging as the only viable alternative.<br />
<br />
Windows supports debugging via the KD protocol using transport mediums other than serial lines: 1394, USB3, ethernet, and the undocumented KDVM protocol supported by Hyper-V and other Hypervisors. ReactOS should be made compatible with these additional transport providers, and open source versions of these providers should be created.<br />
<br />
;Benefits<br />
: Support for debugging on additional hardware platforms<br />
: Improved debugging speed, easier and more reliable setups<br />
<br />
;References<br />
: [https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-1394-cable-connection MSDN: 1394 Debugging]<br />
: [https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-network-debugging-connection MSDN: Network Debugging]<br />
: [https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-usb-3-0-debug-cable-connection MSDN: USB3 Debugging]<br />
: [https://www.osr.com/nt-insider/2015-issue2/kdnet-debugging/ OSR: KDNET Debugging]<br />
: [https://github.com/reactos/reactos/tree/master/drivers/base/kdcom Existing KDCOM transport dll]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Kernel Development and Debugging experience<br />
<br />
=== Crash Dump Support ===<br />
When Windows crashes, it writes a memory dump file that can be used for analyzing the crash later. This allows detailed analysis of the problem even if kernel debugging is not set up, and also makes it possible for an expert to investigate on their own computer after the fact.<br />
<br />
;Benefits<br />
: Detailed information about crashes without requiring the user to perform kernel debugging<br />
: Possibility of automatic crash reporting<br />
<br />
;References<br />
: [https://blogs.technet.microsoft.com/askperf/2008/01/08/understanding-crash-dump-files/ Blog post: Understanding Crash Dump Files]<br />
: [https://crashdmp.wordpress.com/ Exploring the Microsoft Windows crash dump stack]<br />
: [https://msdn.microsoft.com/en-us/library/ms939593.aspx MSDN: Dump File Format (Windows CE)]<br />
: [http://computer.forensikblog.de/en/2006/03/dmp-file-structure.html Blog post: DMP file structure]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Kernel Development and Debugging experience<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
== User-mode APIs ==<br />
<br />
=== Fixing function Control_RunDLLW in shell32.dll ===<br />
There is the problem in shell32!Control_RunDLLW. There are several failing tests for that.<br />
It is available to anyone feeling like fixing a function that parses a string and tokenizes it.<br />
<br />
;Benefits<br />
Ability to start 3rd party applets from Control Pannel<br />
<br />
;Skills needed<br />
: Software Development in C/C++ and under Windows<br />
: Win32 API knowledge<br />
: Basic debugging skills<br />
<br />
;Note<br />
This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
;References<br />
: https://jira.reactos.org/browse/CORE-8981<br />
: https://git.reactos.org/?p=reactos.git;a=blob;f=dll/win32/shell32/wine/control.c;hb=5f11c16ca87bdb6528462198a2a5ef284678c7e7#l873<br />
: https://www.reactos.org/testman/detail.php?id=40923363&prev=0<br />
<br />
=== Microsoft Delta Compression API (mspatcha.dll) ===<br />
Multiple application installers need mspatcha.dll ApplyPatchToFileW implementation (Microsoft Delta Compression API)<br />
<br />
Delta Compression is a differential compression technology developed by Microsoft. While it has mainly been used for Windows Updates, Delta Compression offers other uses as well. <br />
A base implementation of this is present, but it needs a lot of work / investigation to better support patch files.<br />
Most flags / options are hardcoded now, based on a fixed set of test files.<br />
<br />
A first step would be to create more tests, using various options and bigger inputs / outputs,<br />
and optionally find 'patch' files that are possible to include (check the license!).<br />
This should result in a better understanding of the patch file format.<br />
<br />
The next step would be to actually implement the code to support the extra options in our mspatcha.dll<br />
<br />
One **big** unknown is the compression used, which is based on lzx.<br />
The compression used in SQL Express 2008 does not seem to decompress with the current lzx implementation.<br />
At the moment it is unknown if this is due to the lack of understanding of the patch format, or because lzx needs some patches.<br />
<br />
;Benefits<br />
Ability to install Acrobat Reader 11, MS SQL Express 2008 nativelly and many others apps that rely on Microsoft Delta Compression API<br />
<br />
;Skills needed<br />
: Software Development in C or C++ and under Windows<br />
: Basic debugging skills<br />
: Basic Win32 API knowledge<br />
: Knowledge about / understand of compression<br />
: Knowledge about binary file formats<br />
<br />
;Note<br />
This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
;References<br />
: https://docs.microsoft.com/en-us/previous-versions/bb417345(v=msdn.10)<br />
: https://blogs.msdn.microsoft.com/jmstall/2006/11/07/binary-patching-tools-mspatcha-mspatchc/<br />
: https://bugs.winehq.org/show_bug.cgi?id=12501<br />
: https://jira.reactos.org/browse/CORE-8550<br />
<br />
== Win32 Subsystem ==<br />
<br />
=== Multi-Monitor Support ===<br />
Implementation of multi-monitor support has been almost nonexistent until now. Display device drivers expose them thanks to the HwVidGetVideoChildDescriptor callback, which videoprt.sys uses to enumerate monitors attached to it then to pass the information to win32k.sys. It is then the role of win32k.sys to make the link between the two (or more) monitors, either cloning or extending the desktop and exposing the relevant features to client applications.<br />
<br />
;Benefits<br />
: Multi-monitor support would allow ReactOS to become a serious player in professional desktop applications given the increasing number of double-screen installations present in modern workspaces. Document comparison, permanently visible e-mail reader or presentation applications are just a few benefits professionals get when using multiple monitors.<br />
: Multi-Monitor support would also find its place in the casual computing experience. Writing e-mails while watching a movie, or chatting with friends about current football play are things people do in the 21st century!<br />
: From a technical standpoint, properly supporting this feature would improve driver support and WIN32 application compatibility for APIs such as EnumDisplaySettings.<br />
<br />
;References<br />
: http://msdn.microsoft.com/en-us/library/windows/desktop/dd145071%28v=vs.85%29.aspx<br />
: http://msdn.microsoft.com/en-us/library/ff569172%28v=VS.85%29.aspx<br />
: http://www.vesa.org/<br />
: [https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/xpdm/VBoxMPDriver.cpp Virtualbox video driver source]<br />
<br />
;Skills needed<br />
: Experience with Windows display drivers.<br />
: Experience with WINAPI, especially gdi32/user32.: Experience with PnP, as this feature would require detection of connected monitors: Experience with EDID/VESA standards.<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== User mode printer driver support ===<br />
One of the last parts of the printer stack that is missing from printing support is support for user mode printer drivers (renderers). The scope of this project is to implement support for user mode printer drivers in the window manager (win32k).<br />
<br />
;Note<br />
: This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
=== Multi-Session Support ===<br />
Supporting multiple sessions is a prerequisite for Terminal Services.<br />
<br />
;Note<br />
: This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
== Web Services ==<br />
=== Developer Web Interface ===<br />
Our current web interface for developers is a set of different tools like buildbot and testman, which do no longer integrate very well after the switch to git. So it would be desired to have a more modern and more useful web interface for developers to show commits / builds / PRs etc. and link them together with the ability for proper filtering.<br />
<br />
;Benefits<br />
: This would improve the ability to easily watch commits, trigger tests, find build / test results, compare them, etc.<br />
<br />
;Skills needed<br />
: General web development<br />
: Knowledge of web interfaces to buildbot, GitHub, Atlassian tools<br />
: Ability to design useful interfaces, rich of information, yet easy to overview<br />
<br />
; Ideas<br />
* Create a website that lists commits to all reactos repositories<br />
* Each entry should contain the following information<br />
** Commit hash<br />
** Date and time (both commit and merge to the repository)<br />
** Repository<br />
** Branch<br />
** Author<br />
** Committer<br />
** Build trigger type (i.e. auto, or manual)<br />
** Who triggered the build (for manual triggers)<br />
** Build reason (if given)<br />
** PR (if any)<br />
** Jira ticket (if any)<br />
** Link to build on buildbot<br />
** Link to testman<br />
* Multiple pages should be browsable going backwards in time<br />
* It should also allow filtering by<br />
** Date & time range<br />
** Commit hash<br />
** Repository<br />
** Branch<br />
** Commit type (i.e. PR merged, manual commit)<br />
** Build reason<br />
** PR number<br />
** Jira ticket ID<br />
** Terms in the commit message / PR message / build reason<br />
** Author / commiter / "Only my stuff"<br />
* Allow to trigger builds / tests on individual commits<br />
* Show current state of builds / tests (in progress / finished with link)<br />
* Optional: Customizable columns per user<br />
* Optional: Customizable quick filters<br />
<br />
[[Category:Google Summer of Code]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Google_Summer_of_Code_2019_Ideas&diff=47841Google Summer of Code 2019 Ideas2019-02-06T11:46:54Z<p>Colin Finck: Cleanup</p>
<hr />
<div>This page lists all the project ideas for our Google Summer of Code 2019 application. Students should also visit our [[Google Summer of Code 2019|general GSoC 2019 page]] for more information including a Student Guide and our contact information.<br />
<br />
== Your Own Idea! ==<br />
We are eager to hear about your proposal to improve either ReactOS or its infrastructure. Come and propose your project on the ReactOS developers mailing-list or on IRC to get feedback about its feasibility. If your project is doable, we will be glad to provide you with a mentor so you can succeed in your project.<br />
<br />
Don't forget that ReactOS is a big project and application fields are wide. You can choose between user-mode or kernel-mode development, between application, or dll/driver development, or between working on ReactOS itself or on extra tools used by developers for their daily work on ReactOS. Also if all you prefer is web development, we also have needs there. <br />
<br />
;Skills needed<br />
: Yours<br />
<br />
;Difficulty<br />
: The one you'll have set<br />
<br />
;Extras<br />
: You'll be working on your own project and be able to choose its direction along with your mentor :-).<br />
<br />
== Networking ==<br />
=== NDIS Miniport Drivers for Common Network Cards ===<br />
Network card drivers are important for a good out-of-box experience since they are the key requirement for the user's ability to download additional drivers and applications. ReactOS currently includes drivers for AMD PCnet, Realtek RTL8139 and NE2000, with an Intel E1000 driver under development.<br />
<br />
However, these drivers don't cover all modern computer systems. Prominent examples are the Realtek RTL8169/8110 as well as the Broadcom BCM57XX Gigabit Ethernet adapters, which are very common these days. The latter one is also used by the official ReactOS demo laptop (Dell Latitude D531).<br />
ReactOS also lacks a driver for the DC21x4, which is the network adapter emulated by Microsoft Virtual PC/Hyper-V.<br />
A stretch goal may be getting basic NDIS 6.0 support for drivers.<br />
<br />
;Benefits<br />
: "Just works" experience on many physical computers and laptops as well as virtual machines.<br />
<br />
;References<br />
: [https://docs.microsoft.com/en-us/previous-versions/windows/hardware/network/ff557065(v=vs.85) MSDN: NDIS 5.1 Miniport Drivers]<br />
: [https://github.com/reactos/reactos/tree/master/drivers/network/dd Existing built-in network driver sources]<br />
: [https://stuff.mit.edu/afs/sipb/contrib/doc/specs/ic/network/dc21041.pdf Digital Semiconductor 21041 PCI Ethernet LAN Controller Hardware Reference Manual]<br />
: [https://wiki.osdev.org/RTL8169 Start point for RTL8169]<br />
: [http://people.redhat.com/ivecera/RTL8110S-8169S%20Specification%201.3.pdf RTL8169 specification]<br />
: [https://github.com/haiku/haiku/tree/master/src/add-ons/kernel/drivers/network Driver Overview of Haiku]<br />
: [https://github.com/haiku/haiku/tree/abb59d7351c7ddb50c63c40430a82d94fa61917a/src/add-ons/kernel/drivers/network/rtl8169 RTL8169 driver for haiku in 1000 lines]<br />
: [https://www.codeproject.com/Articles/24384/NDIS-sample-miniport-driver-for-realtek An open source RTL8169 NDIS 6.0 driver]<br />
: [https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-0 Overview of NDIS 6.0]<br />
: [https://docs.microsoft.com/de-de/previous-versions/windows/hardware/network/porting-a-miniport-driver-to-ndis-6-0 Porting drivers from NDIS5 to NDIS6 - for getting an overview what needs to be done/adapted]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Kernel driver and/or NDIS programming experience<br />
: Experience working with hardware specification documents<br />
<br />
=== Fundamental WiFi components ===<br />
ReactOS already supports the majority of drivers for cabled Ethernet controllers.<br />
Supporting wireless WiFi controllers requires additional components for enumerating networks, handling a connection and encrypting the communication.<br />
These are almost non-existing in ReactOS right now, and WPA encryption is entirely unsupported.<br />
Having WiFi components would greatly improve the ReactOS experience on mobile computers.<br />
<br />
The student should implement the basic components for WiFi connections found in modern Windows versions (NT6 and later). The components should support connecting to unencrypted and encrypted WEP/WPA/WPA2 networks.<br />
We're deliberately not targeting WinXP (NT5) here, because of major architectural changes in the WiFi components since then.<br />
<br />
;References<br />
: [https://technet.microsoft.com/de-de/library/cc766215(v=ws.10).aspx#BKMK_AppndxB Windows Vista DLLs and function descriptions]<br />
: [https://msdn.microsoft.com/en-us/library/windows/hardware/ff543936(v=vs.85).aspx 802.11 Wireless LAN Objects]<br />
: [https://msdn.microsoft.com/en-us/library/windows/desktop/ms706274(v=vs.85).aspx Native Wifi functions]<br />
: [http://redplait.blogspot.de/2010/11/wlanmsmdll-rpc-interfaces.html wlanmsm.dll RPC Interfaces]<br />
: [https://sourceforge.net/p/mingw-w64/mingw-w64/ci/4a306baa4a206c9314bdc129e98abfa1aebe2b0e/tree/mingw-w64-crt/libarm32/wlansec.def Exports of wlansec.dll]<br />
: [http://securityxploded.com/wifi-password-secrets.php WiFi Password Secrets]<br />
<br />
;Needed Skills<br />
: Software Development in C and under Windows<br />
: Familiarity with Windows networking<br />
: Previous experience with RPC would be a plus<br />
<br />
=== Automatic Proxy Configuration ===<br />
'''Useful for:''' End-users<br />
<br />
Certain network configurations, especially in businesses, require proxy servers to access the internet. If the local network is setup up appropriately, modern operating systems can automatically determine the correct proxy server to use. This is made possible through Proxy Auto-Configuration (PAC) files and the Web Proxy Auto-Discovery Protocol (WPAD).<br />
<br />
;Benefits<br />
: Automatic "just works" internet access in additional environments<br />
: Networking support in business settings<br />
<br />
;References<br />
: [https://en.wikipedia.org/wiki/Web_Proxy_Auto-Discovery_Protocol Wikipedia: WPAD]<br />
: [https://web.archive.org/web/20070602031929/http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html Proxy Client Autoconfig File Format]<br />
: [https://en.wikipedia.org/wiki/Proxy_auto-config Wikipedia: PAC]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Familiarity with Win32 APIs<br />
: Familiarity with relevant technologies like DHCP and JavaScript<br />
<br />
=== Windows Remote Management ===<br />
'''Useful for:''' End-users and developers<br />
<br />
WinRM is a Web Service that allows remote management of Windows machines. This includes authentication as well as remote execution of PowerShell and other scripts.<br />
<br />
WinRM can be seen as Windows's equivalent to SSH, and it is useful for remote administration, automated machine setup as well as test automation.<br />
<br />
;Benefits<br />
: External automation tools such as Ansible could control ReactOS machines<br />
: Automated testing could make use of WinRM, both in VMs and on real hardware.<br />
<br />
;References<br />
: [https://msdn.microsoft.com/en-us/library/aa384426(v=vs.85).aspx MSDN: Windows Remote Management]<br />
: [https://msdn.microsoft.com/en-us/library/aa384470(v=vs.85).aspx MSDN: WS-Management Protocol]<br />
: [http://www.dmtf.org/standards/published_documents/DSP0226_1.1.pdf WS-Management Specification]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Familiarity with Win32 APIs and Networking<br />
: Familiarity with web service development, e.g. HTTP, SOAP, XML<br />
<br />
=== Integrating SMB into ReactOS ===<br />
'''Useful for:''' End-users and developers<br />
<br />
SMB/CIFS is omnipresent for file sharing under Windows. It's one of the features new users to ReactOS always expect and then cannot find anywhere. <br />
<br />
As such, ReactOS finally needs an implementation of SMB properly integrated into the operating system. SMB heavily relies on RPC and UNC paths and previous work in both areas exists. A potential developer should base the work on the mature Samba Open-Source implementation of SMB. However, Samba is developed for UNIX systems and therefore parts of its code require careful porting to create a native implementation for ReactOS.<br />
<br />
;Benefits<br />
: Having SMB would highly improve ReactOS' abilities to transfer files over the network, both for users and developers! It would also lay the groundwork for other Windows network services such as Printer Sharing.<br />
<br />
;References<br />
: [https://wiki.samba.org/index.php/Main_Page Samba Wiki]<br />
: [https://msdn.microsoft.com/en-us/library/cc246231.aspx MS-SMB Server Message Block (SMB) Protocol Open Specification] (and related ones on this site) <br />
: [http://freecode.com/projects/samba-tng Samba-TNG] ([http://web.archive.org/web/20140704112636/http://freecode.com/projects/samba-tng archive]) was an effort to rewrite unix samba libraries into a more NT like architecture. They already work in Windows/ReactOS, archival copies are available here [http://encodedpr.com/files/reactos/source%20code/samba-tng-0.5-rc1.zip source] and [http://encodedpr.com/files/reactos/tools/samba-tng-0.5-rc1_bin.zip binaries]. There is even a [https://www.youtube.com/watch?v=UhFIgSIKPOU video] of how to use it.<br />
: [http://wiki.samba-tng.org/ Samba-TNG Wiki] ([http://web.archive.org/web/20160323191842/https://wiki.samba-tng.org/doku.php/start archive])<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Familiarity with Win32 APIs and Networking<br />
: Experience with gluing code of different projects together<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Terminal Services ===<br />
'''Useful for:''' End-users and developers<br />
<br />
Implement support for terminal services, allowing inbound remote desktop connections to ReactOS. This encompasses implementation of input and video drivers to handle output over the network.<br />
<br />
The terminal services system provides functionality for securely connecting remote clients and servers, for channeling communication between components of remote clients and servers, and for managing servers. It implements the Remote Desktop Protocol (RDP) which is a multi-channel protocol that allows users of a remote client to connect to a server over a network.<br />
<br />
;Benefits<br />
: Terminal services support would allow ReactOS to serve as a terminal server/thin client server. Organizations that wish to provide a shared workstation with Windows would have a free alternative that does not have complex licensing terms covering multi-session usage. The display driver for terminal services can also be used to support fast user-switching and even possibly multi-monitor support.<br />
<br />
;References<br />
: [[ReactOS Terminal Services]]<br />
: https://github.com/FreeRDP/FreeRDP/wiki<br />
<br />
;Skills needed<br />
: Network development experience.<br />
: Driver development experience.<br />
: Knowledge/familiarity with RDP protocol.<br />
<br />
== Storage ==<br />
=== Plug and Play (PnP) Storage Stack ===<br />
Right now, PnP support in the storage stack is close to being there. mountmgr.sys has already been implemented, and recent tests show that plugging USB sticks work. However, "traditional" storage stack is not PnP-aware, meaning that hot-plugging a SATA or SCSI device is not possible.<br />
Alleviating PnP support in scsiport would be the first task of this project. Then, turning uniata into a PnP-aware driver would permit SATA device hot-plugging. Finally, PnP-aware "cdrom_new" and "disk_new" drivers can be activated.<br />
<br />
;References<br />
: [http://msdn.microsoft.com/en-us/library/windows/hardware/ff565353(v=vs.85).aspx SCSI Port API]<br />
: [https://github.com/Microsoft/Windows-driver-samples/tree/master/storage Windows Open-Source Storage Driver Samples based on the PnP Storage Stack]<br />
: [http://alter.org.ua/soft/win/uni_ata/ Universal ATA driver with PATA/SATA/AHCI support (opensource)]<br />
: [https://github.com/vgalnt/reactos/tree/boot_with_nt_drv Vadim Galyant's branch with major PnP overhaul. These code is much more close to supporting disk_new and cdrom_new, but still needs a lot of work]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Experience with developing low-level Kernel-Mode hardware drivers<br />
: Previous experience with Windows Storage APIs would be a huge plus<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
== Graphics ==<br />
=== Get video drivers from AMD/ATI/NVIDIA running stable ===<br />
As of today, most original drivers from GPU manufacturers do not work at all or only very unstable. Because of that, even our "demo laptop" (a Dell D531) with its ATI Radeon Xpress X1270 is very slow. This project is for getting such a driver up and running in a stable manner. The first step would be to fix the bugs in the PnP manager (e.g. as https://jira.reactos.org/browse/CORE-14464) - some patches are already around (e.g. vgal's ones). Then the base driver needs to get running more stable - which will involve fixes e.g. in win32k (e.g. more parameter checks) or other components (which emit wrong parameter). As extras, the OpenGL part could be tried.<br />
<br />
;References<br />
: Reported bugs for the ATI driver: https://jira.reactos.org/browse/CORE-14479?jql=labels%20%3D%20ATI<br />
: ATI Driver: https://mifritscher.de/austausch/reactos/R163694.EXE<br />
<br />
;Benefits<br />
: A much faster demo laptop<br />
: Support for a major vendor of GPUs<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Experience with hardware drivers<br />
: As a plus: Experience with the video stack<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
== Audio ==<br />
=== Intel High Definition Audio Bus Driver ===<br />
Implement support for the Intel High Definition Audio specification for sound cards. ReactOS has the beginnings of the HD Audio Bus driver but it needs to be completed and tested.<br />
<br />
;Benefits<br />
: Modern audio cards use the Intel High Definition Audio specification. Therefore they rely on a bus driver to communicate with the audio hardware. The goal is to complete the bus driver which supports those new cards. The driver needs to work on a Microsoft NT system, and be ready to support ReactOS now or in the future.<br />
<br />
;References<br />
: Existing hdaudbus driver: https://github.com/reactos/reactos/tree/master/drivers/wdm/audio/hdaudbus<br />
: HD Audio Device Driver Interface whitepaper: http://msdn.microsoft.com/en-us/windows/hardware/gg462966<br />
: Programming the HD Audio DDI: http://msdn.microsoft.com/en-us/library/ff536442%28v=vs.85%29.aspx<br />
: HD Audio Bus Drivers: http://msdn.microsoft.com/en-us/library/ff536434%28v=vs.85%29.aspx<br />
<br />
;Skills needed<br />
: Kernel driver programming experience<br />
: Bus driver programming experience<br />
: Familiarity with Intel HD Audio specification<br />
: Audio kernel streaming<br />
<br />
=== Audio Mixer ===<br />
Implement support for mixing of audio streams.<br />
;Benefits<br />
: An audio mixer is responsible for routing of multiple audio streams. This would be very beneficial to ReactOS as audio driver support has improved yet the use of these drivers is limited by the lack of an audio mixer. At the end of the project multiple audio streams should be able to be played at the same time.<br />
<br />
;References<br />
: [http://msdn.microsoft.com/en-us/library/ms705739(v=vs.85).aspx Audio Mixer Reference]<br />
: [http://www.microsoft.com/downloads/en/details.aspx?FamilyID=D7667686-8467-4B10-8713-BF0281536320&amp%3Bdisplaylang=en DirectKS Sample Application download]<br />
: [http://msdn.microsoft.com/en-us/library/ms685967%28v=VS.85%29.aspx Programming Services]<br />
: "Secret Rabbit Code" (SRC) [http://www.mega-nerd.com/SRC/ Sample Rate Converter] aka libsamplerate<br />
<br />
;Skills needed<br />
: Windows Services familiarity<br />
: Basic Audio file format familiarity<br />
: Audio mixing algorithms / libraries familiarity<br />
: Basic kernel streaming familiarity<br />
<br />
== Durability ==<br />
=== Kernel mode test suite ===<br />
'''Useful for:''' Developers<br />
<br />
Improve our existing kernel mode test suite (created by a previous successful GSoC student) by adding comprehensive new tests in areas previously untouched by the test suite such as the kernel caching APIs and PnP. The goal is to extensively test Native API functions exported by the kernel. Reference behavior could be checked by running the test suite against the corresponding Windows operating system.<br />
<br />
;Benefits<br />
: Improved system stability.<br />
: More information about undocumented behavior.<br />
: Improved compatibility with third party drivers.<br />
<br />
;Skills needed<br />
: Native API knowledge<br />
: NT driver development skills<br />
<br />
=== Win32k test suite ===<br />
'''Useful for:''' Developers<br />
<br />
Right now we have basically no tests that cover the win32k module. As win32k is the cornerstone of the interface between the Win32 Subsystem and the display drivers, lack of tests leads to inconsistency, guesswork and frustration when it comes to improving driver compatibility.<br />
A virtual display driver (à la kmtest.sys) allows us to test the functionality and behavior of win32k. If time permits, it would also be possible to add a mechanism to test videoprt.sys functionality, and the relationship between a display driver and its miniport counterpart.<br />
<br />
;References<br />
: [http://msdn.microsoft.com/en-us/library/windows/hardware/ff570585%28v=vs.85%29.aspx Windows 2000 display driver model reference]<br />
<br />
;Benefits<br />
: Improved stability.<br />
: More information about undocumented behavior.<br />
: Improved compatibility with third party drivers.<br />
<br />
;Skills needed<br />
: Display drivers development experience<br />
: Win32 API knowledge<br />
<br />
== System Enhancements ==<br />
=== UI Automation API ===<br />
Accessibility is an important part of any operating system. Windows supports internal and external accessibility tools using its Automation API.<br />
<br />
Adding support for these (currently completely absent) APIs to ReactOS would set the foundation for an OS usable by everyone. One approach for a project may be attempting to get the open source screen reader software "NVDA" to run on ROS.<br />
<br />
Parts of this work may be suitable for submission to Wine, which would extend the usefulness beyond just ReactOS as well as simplify future maintenance of those components.<br />
<br />
;Benefits<br />
: Applications depending on these features may start to work in ReactOS<br />
: Adding support for accessibility shows that we care about all our users<br />
<br />
;References<br />
: [https://msdn.microsoft.com/en-us/library/windows/desktop/dd561932(v=vs.85).aspx Windows Automation API Overview]<br />
: [https://msdn.microsoft.com/en-us/library/windows/desktop/ee684009(v=vs.85).aspx MSDN: UI Automation]<br />
: [https://www.nvaccess.org/ NVDA Screen Reader]<br />
<br />
;Skills needed<br />
: Development in C/C++ and under Windows<br />
: COM knowledge<br />
: Basic debugging skills<br />
<br />
=== Search Shell extension ===<br />
Our current Explorer still lacks a shell search band on the left. It would make the user able to search files, documents, or objects just like Windows does. It must be implemented compatible to the Windows Explorer interfaces to maintain compatibility with existing applications and existing search providers relying on it.<br />
<br />
;Benefits<br />
: This would make our Explorer feel more like the original one and be an user improvement<br />
: Great compatibility test for our browseui/explorer infrastucture.<br />
<br />
;Skills needed<br />
: Development in C/C++ and under Windows<br />
: Knowledge of COM, ATL, and shell APIs would be a plus.<br />
: Able to work without documentation, and only with debugging traces, WinDbg/API monitor<br />
<br />
=== Paravirtualization Support ===<br />
Virtual machines are increasingly common in all fields of computing. To increase VM performance, paravirtualization bypasses the emulation of traditional hardware (such as specific network or storage interfaces, or even the entire PCI bus) and uses specially crafted drivers in the guest OS to more directly interface with the hypervisor. The guest OS kernel can also be modified to directly interact with the hypervisor for CPU and memory management operations, leading to improved performance.<br />
<br />
There are many choices of projects in this space, such as:<br />
: Making Xen's open source drivers work in ReactOS<br />
: Creating an initial set of drivers to support "enlightenment" under Hyper-V<br />
: Enhance the kernel to make use of hypervisor functionality for low-level operations (e.g. via VMI)<br />
: Testing and integrating VirtIO drivers, VirtualBox Guest Additions and/or open-vm-tools into ReactOS<br />
: Implementing automatic hypervisor detection during setup or in the applications manager to simplify the installation of the appropriate VM guest drivers<br />
<br />
Note that these projects can vary greatly in difficulty. Please consult with a mentor to ensure your skill set and the scope of your proposal match up to make a realistic project.<br />
<br />
;Benefits<br />
: Avoid non-free or unavailable alternative drivers<br />
: Improved out-of-the-box functionality in virtual machines<br />
: Integration of kernel features that may improve VM performance<br />
<br />
;References<br />
: [https://www.xenproject.org/developers/teams/windows-pv-drivers.html Xen Windows PV Drivers]<br />
: [https://github.com/vmware/open-vm-tools open-vm-tools]<br />
: [https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Additions/WINNT VirtualBox Guest Additions]<br />
: [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/hv Linux Hyper-V drivers]<br />
: [https://lwn.net/Articles/175706/ The VMI virtualization interface]<br />
<br />
;Skills needed<br />
: Experience with the Hypervisor of your choice, and preferably its paravirtualization interface<br />
: Development in C and under Windows<br />
<br />
=== NT6 recycle bin support ===<br />
In a (much) older GSOC project recycle bin support was added for nt5 operating systems. Now it is time to add support for reading and writing in recycle bin created by more modern operating systems.<br />
<br />
;Note<br />
: This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
=== WebKit-based MSHTML implementation ===<br />
MSHTML is the central component for rendering HTML pages in applications written for Windows.<br />
At the moment, ReactOS depends on a heavyweight Gecko-based MSHTML implementation that needs to be installed manually.<br />
By providing a lightweight WebKit-based MSHTML implementation, ReactOS could render HTML pages out of the box.<br />
This would also benefit the CHM help system, which is based on HTML files.<br />
On top of this, a simple ReactOS Browser with tabbing and bookmarks may be sufficient for some people.<br />
<br />
;References<br />
: [https://msdn.microsoft.com/en-us/library/aa741317(v=vs.85).aspx MSHTML Reference]<br />
: [https://trac.webkit.org/wiki/WebKit2 WebKit2 API]<br />
<br />
;Benefits<br />
: Greater usability by providing a web browser and HTML-based help system out of the box.<br />
: No reliance on the heavyweight Gecko-based MSHTML sourced from WINE.<br />
<br />
;Skills needed<br />
: Development in C/C++ and under Windows<br />
: Knowledge of COM would be a plus.<br />
: Familiarity with WebKit would be a plus.<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Improving the quality of our Registry Hive implementation ===<br />
ReactOS features a basic implementation of the Windows-compatible Registry Hive format for storing system and application settings.<br />
There are two major areas where our current implementation could be improved:<br />
# When ReactOS crashes, Registry Hives easily get corrupted and render the whole system unbootable. The reliability of the Registry Hive implementation shall be improved to make the effect of crashes less severe and also recover from partly corrupted Hives.<br />
# Hives created by our mkhive tool are roughly compatible with the Windows format. The only part that is currently missing are the implementation of Security Descriptors. Implementing these could make the tool more usable and improve interoperability between Windows and ReactOS.<br />
<br />
Related components in ReactOS are the cmlib library, the ntoskrnl Cm, and the mkhive tool.<br />
<br />
;References<br />
: "The Internal Structure of the Windows Registry", MSc Thesis by Peter Norris, BSc (Hons), MBCS: http://amnesia.gtisc.gatech.edu/~moyix/suzibandit.ltd.uk/MSc/<br />
: Offline NT Password and Registry Editor: http://pogostick.net/~pnh/ntpasswd/<br />
: Bug reports [https://jira.reactos.org/browse/CORE-6762 CORE-6762], [https://jira.reactos.org/browse/CORE-9195 CORE-9195] and [https://jira.reactos.org/browse/CORE-10793 CORE-10793].<br />
<br />
;Skills needed<br />
: Development in C<br />
: Kernel-mode development<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Performance Data Registry ===<br />
Access to performance data on Windows is done primarily through the registry API, accessing something known as the performance data hive. This hive does not exist as a genuine file but is in reality a collection of data exported by various OS components, drivers, services, and even applications. Many of the performance values provided through the performance data registry is not available in any other form. The absence of support for performance counters renders many diagnostic utilities from Microsoft broken and is also an impediment to application compatibility. Condor is an example of a third party application that uses the performance data registry for process and resource usage tracking.<br />
<br />
;Benefits<br />
: Besides application compatibility, the performance data registry is one of the most difficult to use public interfaces in Windows. The layout of its data structures makes querying and accessing values a highly manual process. Documentation produced from this effort would provide better guidelines for third parties to access the performance data registry and better use the information published by the system and Microsoft's own applications such as the .NET runtime or the IIS service.<br />
<br />
;References<br />
: Description of performance counters and types in Windows 2003: http://technet.microsoft.com/en-us/library/cc776490%28WS.10%29.aspx<br />
: Performance counter data structures: http://msdn.microsoft.com/en-us/library/aa373093%28v=VS.85%29.aspx<br />
: Example code for accessing performance data through registry: http://msdn.microsoft.com/en-us/library/aa373219%28v=VS.85%29.aspx<br />
<br />
;Skills needed<br />
: Registry API familiarity.<br />
: Performance registry structure familiarity.<br />
: Performance counter familiarity.<br />
<br />
=== Management Console ===<br />
Implement Microsoft Management Console (MMC). The MMC provides an interface for various management tools, both from Microsoft and third parties, called snap-ins. These snap-ins are standalone programs dynamically loaded into an MMC console to perform a specific configuration task, such as configuring a network or managing disk drives.<br />
<br />
;Benefits<br />
: Easier snap-ins development.<br />
: Consistent user interface of management tools.<br />
: One configurable place to access key management and configuration apps.<br />
<br />
;References<br />
: [http://msdn.microsoft.com/en-us/library/bb756943.aspx What is MMC]<br />
: [http://msdn.microsoft.com/en-US/library/bb756923.aspx Developing for MMC 3.0]<br />
: [https://github.com/learn-more/reactos/commits/mmc Some early work on MMC]<br />
<br />
;Skills needed<br />
: Basic Windows development experience.<br />
: Knowledge of COM.<br />
<br />
=== XBox executable support ===<br />
ReactOS have [[Install ReactOS on XBox|original XBox port]] but it can run only Windows applications and lacks ability to run actual XBox executable XBE files. This would require adding XBE loading code and some XBox kernel specific functions.<br />
<br />
;Benefits<br />
: Ability to run XBox games and apps on your original XBox (and even on the PC!) on trusty and fully open source platform<br />
: Attract new developers with low-level programming skills to the project<br />
<br />
;References<br />
: [[Run XBox Games on ReactOS]]<br />
: [https://xboxdevwiki.net/Main_Page XBox Development Wiki]<br />
: [http://xboxdevwiki.net/Xbe XBox Executable format]<br />
<br />
;Skills needed<br />
: Development in C<br />
: Kernel-mode development<br />
: Previous experience with original XBox development would be a huge plus<br />
<br />
== Debugging Improvements ==<br />
=== PDB support for dbghelp ===<br />
Making it possible for our dbghelp read pdb files would improve our ability to debug ReactOS directly in user mode with tools like WinDbg, Process Explorer and more. We could also be able to have small tools for reporting crashes and translating addresses automatically.<br />
<br />
=== Cross-platform KD Debugger Implementation ===<br />
Microsoft's kd.exe and its GUI counterpart WinDbg allow kernel debugging Windows (and ReactOS) machines. Unfortunately these tools are Windows-only and proprietary.<br />
<br />
In order to broadly support the more advanced KD debugging protocol instead of the text-based KDBG we use in GCC builds, we need cross-platform versions of these tools.<br />
<br />
;Benefits<br />
: Support for debugging on additional hardware platforms<br />
: Improved debugging speed, easier and more reliable setups<br />
<br />
;References<br />
: [https://www.reactos.org/wiki/Techwiki:Kd ReactOS wiki: KD]<br />
: [https://github.com/radare/radare2/issues/1246 Radare2 ticket for KD support] (links to much existing work and documentation)<br />
<br />
;Skills needed<br />
: Software Development in C/C++<br />
: Kernel Debugging experience<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Support for Additional KD Transports ===<br />
ReactOS debugging is currently most effective when using a serial port. Many real hardware systems no longer have serial ports, leaving on-screen debugging as the only viable alternative.<br />
<br />
Windows supports debugging via the KD protocol using transport mediums other than serial lines: 1394, USB3, ethernet, and the undocumented KDVM protocol supported by Hyper-V and other Hypervisors. ReactOS should be made compatible with these additional transport providers, and open source versions of these providers should be created.<br />
<br />
;Benefits<br />
: Support for debugging on additional hardware platforms<br />
: Improved debugging speed, easier and more reliable setups<br />
<br />
;References<br />
: [https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-1394-cable-connection MSDN: 1394 Debugging]<br />
: [https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-network-debugging-connection MSDN: Network Debugging]<br />
: [https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-usb-3-0-debug-cable-connection MSDN: USB3 Debugging]<br />
: [https://www.osr.com/nt-insider/2015-issue2/kdnet-debugging/ OSR: KDNET Debugging]<br />
: [https://github.com/reactos/reactos/tree/master/drivers/base/kdcom Existing KDCOM transport dll]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Kernel Development and Debugging experience<br />
<br />
=== Crash Dump Support ===<br />
When Windows crashes, it writes a memory dump file that can be used for analyzing the crash later. This allows detailed analysis of the problem even if kernel debugging is not set up, and also makes it possible for an expert to investigate on their own computer after the fact.<br />
<br />
;Benefits<br />
: Detailed information about crashes without requiring the user to perform kernel debugging<br />
: Possibility of automatic crash reporting<br />
<br />
;References<br />
: [https://blogs.technet.microsoft.com/askperf/2008/01/08/understanding-crash-dump-files/ Blog post: Understanding Crash Dump Files]<br />
: [https://crashdmp.wordpress.com/ Exploring the Microsoft Windows crash dump stack]<br />
: [https://msdn.microsoft.com/en-us/library/ms939593.aspx MSDN: Dump File Format (Windows CE)]<br />
: [http://computer.forensikblog.de/en/2006/03/dmp-file-structure.html Blog post: DMP file structure]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Kernel Development and Debugging experience<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
== User-mode APIs ==<br />
<br />
=== Fixing function Control_RunDLLW in shell32.dll ===<br />
There is the problem in shell32!Control_RunDLLW. There are several failing tests for that.<br />
It is available to anyone feeling like fixing a function that parses a string and tokenizes it.<br />
<br />
;Benefits<br />
Ability to start 3rd party applets from Control Pannel<br />
<br />
;Skills needed<br />
: Software Development in C/C++ and under Windows<br />
: Win32 API knowledge<br />
: Basic debugging skills<br />
<br />
;Note<br />
This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
;References<br />
: https://jira.reactos.org/browse/CORE-8981<br />
: https://git.reactos.org/?p=reactos.git;a=blob;f=dll/win32/shell32/wine/control.c;hb=5f11c16ca87bdb6528462198a2a5ef284678c7e7#l873<br />
: https://www.reactos.org/testman/detail.php?id=40923363&prev=0<br />
<br />
=== Microsoft Delta Compression API (mspatcha.dll) ===<br />
Multiple application installers need mspatcha.dll ApplyPatchToFileW implementation (Microsoft Delta Compression API)<br />
<br />
Delta Compression is a differential compression technology developed by Microsoft. While it has mainly been used for Windows Updates, Delta Compression offers other uses as well. <br />
A base implementation of this is present, but it needs a lot of work / investigation to better support patch files.<br />
Most flags / options are hardcoded now, based on a fixed set of test files.<br />
<br />
A first step would be to create more tests, using various options and bigger inputs / outputs,<br />
and optionally find 'patch' files that are possible to include (check the license!).<br />
This should result in a better understanding of the patch file format.<br />
<br />
The next step would be to actually implement the code to support the extra options in our mspatcha.dll<br />
<br />
One **big** unknown is the compression used, which is based on lzx.<br />
The compression used in SQL Express 2008 does not seem to decompress with the current lzx implementation.<br />
At the moment it is unknown if this is due to the lack of understanding of the patch format, or because lzx needs some patches.<br />
<br />
;Benefits<br />
Ability to install Acrobat Reader 11, MS SQL Express 2008 nativelly and many others apps that rely on Microsoft Delta Compression API<br />
<br />
;Skills needed<br />
: Software Development in C or C++ and under Windows<br />
: Basic debugging skills<br />
: Basic Win32 API knowledge<br />
: Knowledge about / understand of compression<br />
: Knowledge about binary file formats<br />
<br />
;Note<br />
This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
;References<br />
: https://docs.microsoft.com/en-us/previous-versions/bb417345(v=msdn.10)<br />
: https://blogs.msdn.microsoft.com/jmstall/2006/11/07/binary-patching-tools-mspatcha-mspatchc/<br />
: https://bugs.winehq.org/show_bug.cgi?id=12501<br />
: https://jira.reactos.org/browse/CORE-8550<br />
<br />
== Win32 Subsystem ==<br />
<br />
=== Multi-Monitor Support ===<br />
Implementation of multi-monitor support has been almost nonexistent until now. Display device drivers expose them thanks to the HwVidGetVideoChildDescriptor callback, which videoprt.sys uses to enumerate monitors attached to it then to pass the information to win32k.sys. It is then the role of win32k.sys to make the link between the two (or more) monitors, either cloning or extending the desktop and exposing the relevant features to client applications.<br />
<br />
;Benefits<br />
: Multi-monitor support would allow ReactOS to become a serious player in professional desktop applications given the increasing number of double-screen installations present in modern workspaces. Document comparison, permanently visible e-mail reader or presentation applications are just a few benefits professionals get when using multiple monitors.<br />
: Multi-Monitor support would also find its place in the casual computing experience. Writing e-mails while watching a movie, or chatting with friends about current football play are things people do in the 21st century!<br />
: From a technical standpoint, properly supporting this feature would improve driver support and WIN32 application compatibility for APIs such as EnumDisplaySettings.<br />
<br />
;References<br />
: http://msdn.microsoft.com/en-us/library/windows/desktop/dd145071%28v=vs.85%29.aspx<br />
: http://msdn.microsoft.com/en-us/library/ff569172%28v=VS.85%29.aspx<br />
: http://www.vesa.org/<br />
: [https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/xpdm/VBoxMPDriver.cpp Virtualbox video driver source]<br />
<br />
;Skills needed<br />
: Experience with Windows display drivers.<br />
: Experience with WINAPI, especially gdi32/user32.: Experience with PnP, as this feature would require detection of connected monitors: Experience with EDID/VESA standards.<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== User mode printer driver support ===<br />
One of the last parts of the printer stack that is missing from printing support is support for user mode printer drivers (renderers). The scope of this project is to implement support for user mode printer drivers in the window manager (win32k).<br />
<br />
;Note<br />
: This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
=== Multi-Session Support ===<br />
Supporting multiple sessions is a prerequisite for Terminal Services.<br />
<br />
;Note<br />
: This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
== Web Services ==<br />
=== Developer Web Interface ===<br />
Our current web interface for developers is a set of different tools like buildbot and testman, which do no longer integrate very well after the switch to git. So it would be desired to have a more modern and more useful web interface for developers to show commits / builds / PRs etc. and link them together with the ability for proper filtering.<br />
<br />
;Benefits<br />
: This would improve the ability to easily watch commits, trigger tests, find build / test results, compare them, etc.<br />
<br />
;Skills needed<br />
: General web development<br />
: Knowledge of web interfaces to buildbot, GitHub, Atlassian tools<br />
: Ability to design useful interfaces, rich of information, yet easy to overview<br />
<br />
; Ideas<br />
* Create a website that lists commits to all reactos repositories<br />
* Each entry should contain the following information<br />
** Commit hash<br />
** Date and time (both commit and merge to the repository)<br />
** Repository<br />
** Branch<br />
** Author<br />
** Committer<br />
** Build trigger type (i.e. auto, or manual)<br />
** Who triggered the build (for manual triggers)<br />
** Build reason (if given)<br />
** PR (if any)<br />
** Jira ticket (if any)<br />
** Link to build on buildbot<br />
** Link to testman<br />
* Multiple pages should be browsable going backwards in time<br />
* It should also allow filtering by<br />
** Date & time range<br />
** Commit hash<br />
** Repository<br />
** Branch<br />
** Commit type (i.e. PR merged, manual commit)<br />
** Build reason<br />
** PR number<br />
** Jira ticket ID<br />
** Terms in the commit message / PR message / build reason<br />
** Author / commiter / "Only my stuff"<br />
* Allow to trigger builds / tests on individual commits<br />
* Show current state of builds / tests (in progress / finished with link)<br />
* Optional: Customizable columns per user<br />
* Optional: Customizable quick filters<br />
<br />
[[Category:Google Summer of Code]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Google_Summer_of_Code_2019_Ideas&diff=47814Google Summer of Code 2019 Ideas2019-02-03T19:03:12Z<p>Colin Finck: Unify topics and proposal tags a bit</p>
<hr />
<div>This page lists all the project ideas for our Google Summer of Code 2019 application. Students should also visit our [[Google Summer of Code 2019|general GSoC 2019 page]] for more information including a Student Guide and our contact information.<br />
<br />
== Your Own Idea! ==<br />
We are eager to hear about your proposal to improve either ReactOS or its infrastructure. Come and propose your project on the ReactOS developers mailing-list or on IRC to get feedback about its feasibility. If your project is doable, we will be glad to provide you with a mentor so you can succeed in your project.<br />
<br />
Don't forget that ReactOS is a big project and application fields are wide. You can choose between user-mode or kernel-mode development, between application, or dll/driver development, or between working on ReactOS itself or on extra tools used by developers for their daily work on ReactOS. Also if all you prefer is web development, we also have needs there. <br />
<br />
;Skills needed<br />
: Yours<br />
<br />
;Difficulty<br />
: The one you'll have set<br />
<br />
;Extras<br />
: You'll be working on your own project and be able to choose its direction along with your mentor :-).<br />
<br />
== Drivers ==<br />
=== NDIS Miniport Drivers for Common Network Cards ===<br />
Network card drivers are important for a good out-of-box experience since they are the key requirement for the user's ability to download additional drivers and applications. ReactOS currently includes a limited set of built-in network card drivers, most notably AMD PCnet, Realtek RTL8139 and NE2000.<br />
<br />
These simple cards are no longer the default in many virtual machines and require specific configuration. Adding further drivers (e.g. for Intel E1000 and DC21x4 cards) would improve the experience for users of virtual machines. Additionally, the Realtek RTL8169/8110 is very common these days. A stretch goal would be getting basic NDIS 6.0 support for drivers.<br />
<br />
;Benefits<br />
: "Just works" experience on common Hypervisors such as VirtualBox, VMware and Hyper-V<br />
: Also potentially enables out-of-the-box network experience on many physical computers and laptops.<br />
<br />
;References<br />
: [https://docs.microsoft.com/en-us/previous-versions/windows/hardware/network/ff557065(v=vs.85) MSDN: NDIS 5.1 Miniport Drivers]<br />
: [https://github.com/reactos/reactos/tree/master/drivers/network/dd Existing built-in network driver sources]<br />
: [https://www.intel.ca/content/dam/doc/datasheet/82574l-gbe-controller-datasheet.pdf Intel® 82574 GbE Controller Family Datasheet]<br />
: [https://wiki.osdev.org/Intel_Ethernet_i217 Intel Ethernet i217 & 82577LM (E1000-compatible) Driver Development at OSDev.org]<br />
: [https://github.com/RWTH-OS/HermitCore/blob/master/drivers/net/e1000.c Basic Intel E1000 Driver for a Library OS in <1000 lines]<br />
: [https://stuff.mit.edu/afs/sipb/contrib/doc/specs/ic/network/dc21041.pdf Digital Semiconductor 21041 PCI Ethernet LAN Controller Hardware Reference Manual]<br />
: [https://wiki.osdev.org/RTL8169 Start point for RTL8169]<br />
: [http://people.redhat.com/ivecera/RTL8110S-8169S%20Specification%201.3.pdf RTL8169 specification]<br />
: [https://github.com/haiku/haiku/tree/master/src/add-ons/kernel/drivers/network Driver Overview of Haiku]<br />
: [https://github.com/haiku/haiku/tree/abb59d7351c7ddb50c63c40430a82d94fa61917a/src/add-ons/kernel/drivers/network/rtl8169 RTL8169 driver for haiku in 1000 lines]<br />
: [https://www.codeproject.com/Articles/24384/NDIS-sample-miniport-driver-for-realtek An open source RTL8169 NDIS 6.0 driver]<br />
: [https://docs.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-ndis-6-0 Overview of NDIS 6.0]<br />
: [https://docs.microsoft.com/de-de/previous-versions/windows/hardware/network/porting-a-miniport-driver-to-ndis-6-0 Porting drivers from NDIS5 to NDIS6 - for getting an overview what needs to be done/adapted]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Kernel driver and/or NDIS programming experience<br />
: Experience working with hardware specification documents<br />
<br />
=== Fundamental WiFi components ===<br />
ReactOS already supports the majority of drivers for cabled Ethernet controllers.<br />
Supporting wireless WiFi controllers requires additional components for enumerating networks, handling a connection and encrypting the communication.<br />
These are almost non-existing in ReactOS right now, and WPA encryption is entirely unsupported.<br />
Having WiFi components would greatly improve the ReactOS experience on mobile computers.<br />
<br />
The student should implement the basic components for WiFi connections found in modern Windows versions (NT6 and later). The components should support connecting to unencrypted and encrypted WEP/WPA/WPA2 networks.<br />
We're deliberately not targeting WinXP (NT5) here, because of major architectural changes in the WiFi components since then.<br />
<br />
;References<br />
: [https://technet.microsoft.com/de-de/library/cc766215(v=ws.10).aspx#BKMK_AppndxB Windows Vista DLLs and function descriptions]<br />
: [https://msdn.microsoft.com/en-us/library/windows/hardware/ff543936(v=vs.85).aspx 802.11 Wireless LAN Objects]<br />
: [https://msdn.microsoft.com/en-us/library/windows/desktop/ms706274(v=vs.85).aspx Native Wifi functions]<br />
: [http://redplait.blogspot.de/2010/11/wlanmsmdll-rpc-interfaces.html wlanmsm.dll RPC Interfaces]<br />
: [https://sourceforge.net/p/mingw-w64/mingw-w64/ci/4a306baa4a206c9314bdc129e98abfa1aebe2b0e/tree/mingw-w64-crt/libarm32/wlansec.def Exports of wlansec.dll]<br />
: [http://securityxploded.com/wifi-password-secrets.php WiFi Password Secrets]<br />
<br />
;Needed Skills<br />
: Software Development in C and under Windows<br />
: Familiarity with Windows networking<br />
: Previous experience with RPC would be a plus<br />
<br />
=== Plug and Play (PnP) Storage Stack ===<br />
Right now, PnP support in the storage stack is close to being there. mountmgr.sys has already been implemented, and recent tests show that plugging USB sticks work. However, "traditional" storage stack is not PnP-aware, meaning that hot-plugging a SATA or SCSI device is not possible.<br />
Alleviating PnP support in scsiport would be the first task of this project. Then, turning uniata into a PnP-aware driver would permit SATA device hot-plugging. Finally, PnP-aware "cdrom_new" and "disk_new" drivers can be activated.<br />
<br />
;References<br />
: [http://msdn.microsoft.com/en-us/library/windows/hardware/ff565353(v=vs.85).aspx SCSI Port API]<br />
: [https://github.com/Microsoft/Windows-driver-samples/tree/master/storage Windows Open-Source Storage Driver Samples based on the PnP Storage Stack]<br />
: [http://alter.org.ua/soft/win/uni_ata/ Universal ATA driver with PATA/SATA/AHCI support (opensource)]<br />
: [https://github.com/vgalnt/reactos/tree/boot_with_nt_drv Vadim Galyant's branch with major PnP overhaul. These code is much more close to supporting disk_new and cdrom_new, but still needs a lot of work]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Experience with developing low-level Kernel-Mode hardware drivers<br />
: Previous experience with Windows Storage APIs would be a huge plus<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Get the video driver from ATI running stable ===<br />
As of today, the ATI driver does not work at all or it is very unstable. Because of that, even our "demo laptop" (a Dell D531) with its ATI x1270 is very slow. This project is for getting the driver up and running in a stable manner. The first step would be to fix the bugs in the PNP manager (e.g. as https://jira.reactos.org/browse/CORE-14464 ) - some patches are already around (e.g. vgal's ones). Then the base driver needs to get running more stable - which will involve fixes e.g. in win32k (e.g. more parameter checks) or other components (which emit wrong parameter). As extras, the openGL part could be tried - or drivers from other vendors (like Intel or NVidia)<br />
<br />
;References<br />
: Reported bugs: https://jira.reactos.org/browse/CORE-14479?jql=labels%20%3D%20ATI<br />
: Driver: https://mifritscher.de/austausch/reactos/R163694.EXE<br />
<br />
;Benefits<br />
: A much faster demo laptop<br />
: Support of a major vendor of GPUs<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Experience with hardware drivers<br />
: As a plus: Experience with the video stack<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
== Audio ==<br />
=== Intel High Definition Audio Bus Driver ===<br />
Implement support for the Intel High Definition Audio specification for sound cards. ReactOS has the beginnings of the HD Audio Bus driver but it needs to be completed and tested.<br />
<br />
;Benefits<br />
: Modern audio cards use the Intel High Definition Audio specification. Therefore they rely on a bus driver to communicate with the audio hardware. The goal is to complete the bus driver which supports those new cards. The driver needs to work on a Microsoft NT system, and be ready to support ReactOS now or in the future.<br />
<br />
;References<br />
: Existing hdaudbus driver: https://github.com/reactos/reactos/tree/master/drivers/wdm/audio/hdaudbus<br />
: HD Audio Device Driver Interface whitepaper: http://msdn.microsoft.com/en-us/windows/hardware/gg462966<br />
: Programming the HD Audio DDI: http://msdn.microsoft.com/en-us/library/ff536442%28v=vs.85%29.aspx<br />
: HD Audio Bus Drivers: http://msdn.microsoft.com/en-us/library/ff536434%28v=vs.85%29.aspx<br />
<br />
;Skills needed<br />
: Kernel driver programming experience<br />
: Bus driver programming experience<br />
: Familiarity with Intel HD Audio specification<br />
: Audio kernel streaming<br />
<br />
=== NT "Wine audio" driver ===<br />
'''Useful for:''' End-users<br />
<br />
Currently, ReactOS imports mmdevapi DLL from Wine but it doesn't have a "driver" for it. In Wine, the driver is an implementation of various COM interfaces on top of libraries such as ALSA or OSS. However, it is perfectly possible to implement such a driver for Windows NT (preferably Vista+) using audio IOCTL to directly talk to the Windows device.<br />
<br />
;Benefits<br />
: Vista+ compatible sound stack (our portcls.sys is already there)<br />
: Importing the latest Wine audio related libraries becomes possible (winmm, mmdevapi, dsound, etc.)<br />
: One place to rule them all: the only direct interface between user mode and driver.<br />
<br />
;References<br />
: [https://wiki.winehq.org/Sound WINE documentation about its Sound System]<br />
: [http://msdn.microsoft.com/en-us/library/windows/desktop/dd370802%28v=vs.85%29.aspx Core Audio]<br />
: [http://source.winehq.org/git/wine.git/blob/HEAD:/dlls/winealsa.drv/mmdevdrv.c Wine implementation on top of alsa]<br />
<br />
;Skills needed<br />
: Windows Audio Stack knowledge<br />
: COM knowledge<br />
<br />
=== Audio Mixer ===<br />
Implement support for mixing of audio streams.<br />
;Benefits<br />
: An audio mixer is responsible for routing of multiple audio streams. This would be very beneficial to ReactOS as audio driver support has improved yet the use of these drivers is limited by the lack of an audio mixer. At the end of the project multiple audio streams should be able to be played at the same time.<br />
<br />
;References<br />
: [http://msdn.microsoft.com/en-us/library/ms705739(v=vs.85).aspx Audio Mixer Reference]<br />
: [http://www.microsoft.com/downloads/en/details.aspx?FamilyID=D7667686-8467-4B10-8713-BF0281536320&amp%3Bdisplaylang=en DirectKS Sample Application download]<br />
: [http://msdn.microsoft.com/en-us/library/ms685967%28v=VS.85%29.aspx Programming Services]<br />
: "Secret Rabbit Code" (SRC) [http://www.mega-nerd.com/SRC/ Sample Rate Converter] aka libsamplerate<br />
<br />
;Skills needed<br />
: Windows Services familiarity<br />
: Basic Audio file format familiarity<br />
: Audio mixing algorithms / libraries familiarity<br />
: Basic kernel streaming familiarity<br />
<br />
== Networking ==<br />
=== Automatic Proxy Configuration ===<br />
'''Useful for:''' End-users<br />
<br />
Certain network configurations, especially in businesses, require proxy servers to access the internet. If the local network is setup up appropriately, modern operating systems can automatically determine the correct proxy server to use. This is made possible through Proxy Auto-Configuration (PAC) files and the Web Proxy Auto-Discovery Protocol (WPAD).<br />
<br />
;Benefits<br />
: Automatic "just works" internet access in additional environments<br />
: Networking support in business settings<br />
<br />
;References<br />
: [https://en.wikipedia.org/wiki/Web_Proxy_Auto-Discovery_Protocol Wikipedia: WPAD]<br />
: [https://web.archive.org/web/20070602031929/http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html Proxy Client Autoconfig File Format]<br />
: [https://en.wikipedia.org/wiki/Proxy_auto-config Wikipedia: PAC]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Familiarity with Win32 APIs<br />
: Familiarity with relevant technologies like DHCP and JavaScript<br />
<br />
=== Windows Remote Management ===<br />
'''Useful for:''' End-users and developers<br />
<br />
WinRM is a Web Service that allows remote management of Windows machines. This includes authentication as well as remote execution of PowerShell and other scripts.<br />
<br />
WinRM can be seen as Windows's equivalent to SSH, and it is useful for remote administration, automated machine setup as well as test automation.<br />
<br />
;Benefits<br />
: External automation tools such as Ansible could control ReactOS machines<br />
: Automated testing could make use of WinRM, both in VMs and on real hardware.<br />
<br />
;References<br />
: [https://msdn.microsoft.com/en-us/library/aa384426(v=vs.85).aspx MSDN: Windows Remote Management]<br />
: [https://msdn.microsoft.com/en-us/library/aa384470(v=vs.85).aspx MSDN: WS-Management Protocol]<br />
: [http://www.dmtf.org/standards/published_documents/DSP0226_1.1.pdf WS-Management Specification]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Familiarity with Win32 APIs and Networking<br />
: Familiarity with web service development, e.g. HTTP, SOAP, XML<br />
<br />
=== Integrating SMB into ReactOS ===<br />
'''Useful for:''' End-users and developers<br />
<br />
SMB/CIFS is omnipresent for file sharing under Windows. It's one of the features new users to ReactOS always expect and then cannot find anywhere. <br />
<br />
As such, ReactOS finally needs an implementation of SMB properly integrated into the operating system. SMB heavily relies on RPC and UNC paths and previous work in both areas exists. A potential developer should base the work on the mature Samba Open-Source implementation of SMB. However, Samba is developed for UNIX systems and therefore parts of its code require careful porting to create a native implementation for ReactOS.<br />
<br />
;Benefits<br />
: Having SMB would highly improve ReactOS' abilities to transfer files over the network, both for users and developers! It would also lay the groundwork for other Windows network services such as Printer Sharing.<br />
<br />
;References<br />
: [https://wiki.samba.org/index.php/Main_Page Samba Wiki]<br />
: [https://msdn.microsoft.com/en-us/library/cc246231.aspx MS-SMB Server Message Block (SMB) Protocol Open Specification] (and related ones on this site) <br />
: [http://freecode.com/projects/samba-tng Samba-TNG] ([http://web.archive.org/web/20140704112636/http://freecode.com/projects/samba-tng archive]) was an effort to rewrite unix samba libraries into a more NT like architecture. They already work in Windows/ReactOS, archival copies are available here [http://encodedpr.com/files/reactos/source%20code/samba-tng-0.5-rc1.zip source] and [http://encodedpr.com/files/reactos/tools/samba-tng-0.5-rc1_bin.zip binaries]. There is even a [https://www.youtube.com/watch?v=UhFIgSIKPOU video] of how to use it.<br />
: [http://wiki.samba-tng.org/ Samba-TNG Wiki] ([http://web.archive.org/web/20160323191842/https://wiki.samba-tng.org/doku.php/start archive])<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Familiarity with Win32 APIs and Networking<br />
: Experience with gluing code of different projects together<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Terminal Services ===<br />
'''Useful for:''' End-users and developers<br />
<br />
Implement support for terminal services, allowing inbound remote desktop connections to ReactOS. This encompasses implementation of input and video drivers to handle output over the network.<br />
<br />
The terminal services system provides functionality for securely connecting remote clients and servers, for channeling communication between components of remote clients and servers, and for managing servers. It implements the Remote Desktop Protocol (RDP) which is a multi-channel protocol that allows users of a remote client to connect to a server over a network.<br />
<br />
;Benefits<br />
: Terminal services support would allow ReactOS to serve as a terminal server/thin client server. Organizations that wish to provide a shared workstation with Windows would have a free alternative that does not have complex licensing terms covering multi-session usage. The display driver for terminal services can also be used to support fast user-switching and even possibly multi-monitor support.<br />
<br />
;References<br />
: [[ReactOS Terminal Services]]<br />
: https://github.com/FreeRDP/FreeRDP/wiki<br />
<br />
;Skills needed<br />
: Network development experience.<br />
: Driver development experience.<br />
: Knowledge/familiarity with RDP protocol.<br />
<br />
== Durability ==<br />
=== Kernel mode test suite ===<br />
'''Useful for:''' Developers<br />
<br />
Improve our existing kernel mode test suite (created by a previous successful GSoC student) by adding comprehensive new tests in areas previously untouched by the test suite such as the kernel caching APIs and PnP. The goal is to extensively test Native API functions exported by the kernel. Reference behavior could be checked by running the test suite against the corresponding Windows operating system.<br />
<br />
;Benefits<br />
: Improved system stability.<br />
: More information about undocumented behavior.<br />
: Improved compatibility with third party drivers.<br />
<br />
;Skills needed<br />
: Native API knowledge<br />
: NT driver development skills<br />
<br />
=== Win32k test suite ===<br />
'''Useful for:''' Developers<br />
<br />
Right now we have basically no tests that cover the win32k module. As win32k is the cornerstone of the interface between the Win32 Subsystem and the display drivers, lack of tests leads to inconsistency, guesswork and frustration when it comes to improving driver compatibility.<br />
A virtual display driver (à la kmtest.sys) allows us to test the functionality and behavior of win32k. If time permits, it would also be possible to add a mechanism to test videoprt.sys functionality, and the relationship between a display driver and its miniport counterpart.<br />
<br />
;References<br />
: [http://msdn.microsoft.com/en-us/library/windows/hardware/ff570585%28v=vs.85%29.aspx Windows 2000 display driver model reference]<br />
<br />
;Benefits<br />
: Improved stability.<br />
: More information about undocumented behavior.<br />
: Improved compatibility with third party drivers.<br />
<br />
;Skills needed<br />
: Display drivers development experience<br />
: Win32 API knowledge<br />
<br />
== System Enhancements ==<br />
=== UI Automation API ===<br />
Accessibility is an important part of any operating system. Windows supports internal and external accessibility tools using its Automation API.<br />
<br />
Adding support for these (currently completely absent) APIs to ReactOS would set the foundation for an OS usable by everyone. One approach for a project may be attempting to get the open source screen reader software "NVDA" to run on ROS.<br />
<br />
Parts of this work may be suitable for submission to Wine, which would extend the usefulness beyond just ReactOS as well as simplify future maintenance of those components.<br />
<br />
;Benefits<br />
: Applications depending on these features may start to work in ReactOS<br />
: Adding support for accessibility shows that we care about all our users<br />
<br />
;References<br />
: [https://msdn.microsoft.com/en-us/library/windows/desktop/dd561932(v=vs.85).aspx Windows Automation API Overview]<br />
: [https://msdn.microsoft.com/en-us/library/windows/desktop/ee684009(v=vs.85).aspx MSDN: UI Automation]<br />
: [https://www.nvaccess.org/ NVDA Screen Reader]<br />
<br />
;Skills needed<br />
: Development in C/C++ and under Windows<br />
: COM knowledge<br />
: Basic debugging skills<br />
<br />
=== Search Shell extension ===<br />
Our current Explorer still lacks a shell search band on the left. It would make the user able to search files, documents, or objects just like Windows does. It must be implemented compatible to the Windows Explorer interfaces to maintain compatibility with existing applications and existing search providers relying on it.<br />
<br />
;Benefits<br />
: This would make our Explorer feel more like the original one and be an user improvement<br />
: Great compatibility test for our browseui/explorer infrastucture.<br />
<br />
;Skills needed<br />
: Development in C/C++ and under Windows<br />
: Knowledge of COM, ATL, and shell APIs would be a plus.<br />
: Able to work without documentation, and only with debugging traces, WinDbg/API monitor<br />
<br />
=== Paravirtualization Support ===<br />
Virtual machines are increasingly common in all fields of computing. To increase VM performance, paravirtualization bypasses the emulation of traditional hardware (such as specific network or storage interfaces, or even the entire PCI bus) and uses specially crafted drivers in the guest OS to more directly interface with the hypervisor. The guest OS kernel can also be modified to directly interact with the hypervisor for CPU and memory management operations, leading to improved performance.<br />
<br />
There are many choices of projects in this space, such as:<br />
: Making Xen's open source drivers work in ReactOS<br />
: Creating an initial set of drivers to support "enlightenment" under Hyper-V<br />
: Enhance the kernel to make use of hypervisor functionality for low-level operations (e.g. via VMI)<br />
: Testing and integrating VirtIO drivers, VirtualBox Guest Additions and/or open-vm-tools into ReactOS<br />
: Implementing automatic hypervisor detection during setup or in the applications manager to simplify the installation of the appropriate VM guest drivers<br />
<br />
Note that these projects can vary greatly in difficulty. Please consult with a mentor to ensure your skill set and the scope of your proposal match up to make a realistic project.<br />
<br />
;Benefits<br />
: Avoid non-free or unavailable alternative drivers<br />
: Improved out-of-the-box functionality in virtual machines<br />
: Integration of kernel features that may improve VM performance<br />
<br />
;References<br />
: [https://www.xenproject.org/developers/teams/windows-pv-drivers.html Xen Windows PV Drivers]<br />
: [https://github.com/vmware/open-vm-tools open-vm-tools]<br />
: [https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Additions/WINNT VirtualBox Guest Additions]<br />
: [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/hv Linux Hyper-V drivers]<br />
: [https://lwn.net/Articles/175706/ The VMI virtualization interface]<br />
<br />
;Skills needed<br />
: Experience with the Hypervisor of your choice, and preferably its paravirtualization interface<br />
: Development in C and under Windows<br />
<br />
=== NT6 recycle bin support ===<br />
In a (much) older GSOC project recycle bin support was added for nt5 operating systems. Now it is time to add support for reading and writing in recycle bin created by more modern operating systems.<br />
<br />
;Note<br />
: This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
=== WebKit-based MSHTML implementation ===<br />
MSHTML is the central component for rendering HTML pages in applications written for Windows.<br />
At the moment, ReactOS depends on a heavyweight Gecko-based MSHTML implementation that needs to be installed manually.<br />
By providing a lightweight WebKit-based MSHTML implementation, ReactOS could render HTML pages out of the box.<br />
This would also benefit the CHM help system, which is based on HTML files.<br />
On top of this, a simple ReactOS Browser with tabbing and bookmarks may be sufficient for some people.<br />
<br />
;References<br />
: [https://msdn.microsoft.com/en-us/library/aa741317(v=vs.85).aspx MSHTML Reference]<br />
: [https://trac.webkit.org/wiki/WebKit2 WebKit2 API]<br />
<br />
;Benefits<br />
: Greater usability by providing a web browser and HTML-based help system out of the box.<br />
: No reliance on the heavyweight Gecko-based MSHTML sourced from WINE.<br />
<br />
;Skills needed<br />
: Development in C/C++ and under Windows<br />
: Knowledge of COM would be a plus.<br />
: Familiarity with WebKit would be a plus.<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Improving the quality of our Registry Hive implementation ===<br />
ReactOS features a basic implementation of the Windows-compatible Registry Hive format for storing system and application settings.<br />
There are two major areas where our current implementation could be improved:<br />
# When ReactOS crashes, Registry Hives easily get corrupted and render the whole system unbootable. The reliability of the Registry Hive implementation shall be improved to make the effect of crashes less severe and also recover from partly corrupted Hives.<br />
# Hives created by our mkhive tool are roughly compatible with the Windows format. The only part that is currently missing are the implementation of Security Descriptors. Implementing these could make the tool more usable and improve interoperability between Windows and ReactOS.<br />
<br />
Related components in ReactOS are the cmlib library, the ntoskrnl Cm, and the mkhive tool.<br />
<br />
;References<br />
: "The Internal Structure of the Windows Registry", MSc Thesis by Peter Norris, BSc (Hons), MBCS: http://amnesia.gtisc.gatech.edu/~moyix/suzibandit.ltd.uk/MSc/<br />
: Offline NT Password and Registry Editor: http://pogostick.net/~pnh/ntpasswd/<br />
: Bug reports [https://jira.reactos.org/browse/CORE-6762 CORE-6762], [https://jira.reactos.org/browse/CORE-9195 CORE-9195] and [https://jira.reactos.org/browse/CORE-10793 CORE-10793].<br />
<br />
;Skills needed<br />
: Development in C<br />
: Kernel-mode development<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Performance Data Registry ===<br />
Access to performance data on Windows is done primarily through the registry API, accessing something known as the performance data hive. This hive does not exist as a genuine file but is in reality a collection of data exported by various OS components, drivers, services, and even applications. Many of the performance values provided through the performance data registry is not available in any other form. The absence of support for performance counters renders many diagnostic utilities from Microsoft broken and is also an impediment to application compatibility. Condor is an example of a third party application that uses the performance data registry for process and resource usage tracking.<br />
<br />
;Benefits<br />
: Besides application compatibility, the performance data registry is one of the most difficult to use public interfaces in Windows. The layout of its data structures makes querying and accessing values a highly manual process. Documentation produced from this effort would provide better guidelines for third parties to access the performance data registry and better use the information published by the system and Microsoft's own applications such as the .NET runtime or the IIS service.<br />
<br />
;References<br />
: Description of performance counters and types in Windows 2003: http://technet.microsoft.com/en-us/library/cc776490%28WS.10%29.aspx<br />
: Performance counter data structures: http://msdn.microsoft.com/en-us/library/aa373093%28v=VS.85%29.aspx<br />
: Example code for accessing performance data through registry: http://msdn.microsoft.com/en-us/library/aa373219%28v=VS.85%29.aspx<br />
<br />
;Skills needed<br />
: Registry API familiarity.<br />
: Performance registry structure familiarity.<br />
: Performance counter familiarity.<br />
<br />
=== Management Console ===<br />
Implement Microsoft Management Console (MMC). The MMC provides an interface for various management tools, both from Microsoft and third parties, called snap-ins. These snap-ins are standalone programs dynamically loaded into an MMC console to perform a specific configuration task, such as configuring a network or managing disk drives.<br />
<br />
;Benefits<br />
: Easier snap-ins development.<br />
: Consistent user interface of management tools.<br />
: One configurable place to access key management and configuration apps.<br />
<br />
;References<br />
: [http://msdn.microsoft.com/en-us/library/bb756943.aspx What is MMC]<br />
: [http://msdn.microsoft.com/en-US/library/bb756923.aspx Developing for MMC 3.0]<br />
: [https://github.com/learn-more/reactos/commits/mmc Some early work on MMC]<br />
<br />
;Skills needed<br />
: Basic Windows development experience.<br />
: Knowledge of COM.<br />
<br />
=== XBox executable support ===<br />
ReactOS have [[Install ReactOS on XBox|original XBox port]] but it can run only Windows applications and lacks ability to run actual XBox executable XBE files. This would require adding XBE loading code and some XBox kernel specific functions.<br />
<br />
;Benefits<br />
: Ability to run XBox games and apps on your original XBox (and even on the PC!) on trusty and fully open source platform<br />
: Attract new developers with low-level programming skills to the project<br />
<br />
;References<br />
: [[Run XBox Games on ReactOS]]<br />
: [https://xboxdevwiki.net/Main_Page XBox Development Wiki]<br />
: [http://xboxdevwiki.net/Xbe XBox Executable format]<br />
<br />
;Skills needed<br />
: Development in C<br />
: Kernel-mode development<br />
: Previous experience with original XBox development would be a huge plus<br />
<br />
== Debugging Improvements ==<br />
=== PDB support for dbghelp ===<br />
Making it possible for our dbghelp read pdb files would improve our ability to debug ReactOS directly in user mode with tools like WinDbg, Process Explorer and more. We could also be able to have small tools for reporting crashes and translating addresses automatically.<br />
<br />
=== Cross-platform KD Debugger Implementation ===<br />
Microsoft's kd.exe and its GUI counterpart WinDbg allow kernel debugging Windows (and ReactOS) machines. Unfortunately these tools are Windows-only and proprietary.<br />
<br />
In order to broadly support the more advanced KD debugging protocol instead of the text-based KDBG we use in GCC builds, we need cross-platform versions of these tools.<br />
<br />
;Benefits<br />
: Support for debugging on additional hardware platforms<br />
: Improved debugging speed, easier and more reliable setups<br />
<br />
;References<br />
: [https://www.reactos.org/wiki/Techwiki:Kd ReactOS wiki: KD]<br />
: [https://github.com/radare/radare2/issues/1246 Radare2 ticket for KD support] (links to much existing work and documentation)<br />
<br />
;Skills needed<br />
: Software Development in C/C++<br />
: Kernel Debugging experience<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== Support for Additional KD Transports ===<br />
ReactOS debugging is currently most effective when using a serial port. Many real hardware systems no longer have serial ports, leaving on-screen debugging as the only viable alternative.<br />
<br />
Windows supports debugging via the KD protocol using transport mediums other than serial lines: 1394, USB3, ethernet, and the undocumented KDVM protocol supported by Hyper-V and other Hypervisors. ReactOS should be made compatible with these additional transport providers, and open source versions of these providers should be created.<br />
<br />
;Benefits<br />
: Support for debugging on additional hardware platforms<br />
: Improved debugging speed, easier and more reliable setups<br />
<br />
;References<br />
: [https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-1394-cable-connection MSDN: 1394 Debugging]<br />
: [https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-network-debugging-connection MSDN: Network Debugging]<br />
: [https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-usb-3-0-debug-cable-connection MSDN: USB3 Debugging]<br />
: [https://www.osr.com/nt-insider/2015-issue2/kdnet-debugging/ OSR: KDNET Debugging]<br />
: [https://github.com/reactos/reactos/tree/master/drivers/base/kdcom Existing KDCOM transport dll]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Kernel Development and Debugging experience<br />
<br />
=== Crash Dump Support ===<br />
When Windows crashes, it writes a memory dump file that can be used for analyzing the crash later. This allows detailed analysis of the problem even if kernel debugging is not set up, and also makes it possible for an expert to investigate on their own computer after the fact.<br />
<br />
;Benefits<br />
: Detailed information about crashes without requiring the user to perform kernel debugging<br />
: Possibility of automatic crash reporting<br />
<br />
;References<br />
: [https://blogs.technet.microsoft.com/askperf/2008/01/08/understanding-crash-dump-files/ Blog post: Understanding Crash Dump Files]<br />
: [https://crashdmp.wordpress.com/ Exploring the Microsoft Windows crash dump stack]<br />
: [https://msdn.microsoft.com/en-us/library/ms939593.aspx MSDN: Dump File Format (Windows CE)]<br />
: [http://computer.forensikblog.de/en/2006/03/dmp-file-structure.html Blog post: DMP file structure]<br />
<br />
;Skills needed<br />
: Software Development in C and under Windows<br />
: Kernel Development and Debugging experience<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
== User-mode APIs ==<br />
<br />
=== Fixing function Control_RunDLLW in shell32.dll ===<br />
There is the problem in shell32!Control_RunDLLW. There are several failing tests for that.<br />
It is available to anyone feeling like fixing a function that parses a string and tokenizes it.<br />
<br />
;Benefits<br />
Ability to start 3rd party applets from Control Pannel<br />
<br />
;Skills needed<br />
: Software Development in C/C++ and under Windows<br />
: Win32 API knowledge<br />
: Basic debugging skills<br />
<br />
;Note<br />
This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
;References<br />
: https://jira.reactos.org/browse/CORE-8981<br />
: https://git.reactos.org/?p=reactos.git;a=blob;f=dll/win32/shell32/wine/control.c;hb=5f11c16ca87bdb6528462198a2a5ef284678c7e7#l873<br />
: https://www.reactos.org/testman/detail.php?id=40923363&prev=0<br />
<br />
=== Microsoft Delta Compression API (mspatcha.dll) ===<br />
Multiple application installers need mspatcha.dll ApplyPatchToFileW implementation (Microsoft Delta Compression API)<br />
<br />
Delta Compression is a differential compression technology developed by Microsoft. While it has mainly been used for Windows Updates, Delta Compression offers other uses as well. <br />
A base implementation of this is present, but it needs a lot of work / investigation to better support patch files.<br />
Most flags / options are hardcoded now, based on a fixed set of test files.<br />
<br />
A first step would be to create more tests, using various options and bigger inputs / outputs,<br />
and optionally find 'patch' files that are possible to include (check the license!).<br />
This should result in a better understanding of the patch file format.<br />
<br />
The next step would be to actually implement the code to support the extra options in our mspatcha.dll<br />
<br />
One **big** unknown is the compression used, which is based on lzx.<br />
The compression used in SQL Express 2008 does not seem to decompress with the current lzx implementation.<br />
At the moment it is unknown if this is due to the lack of understanding of the patch format, or because lzx needs some patches.<br />
<br />
;Benefits<br />
Ability to install Acrobat Reader 11, MS SQL Express 2008 nativelly and many others apps that rely on Microsoft Delta Compression API<br />
<br />
;Skills needed<br />
: Software Development in C or C++ and under Windows<br />
: Basic debugging skills<br />
: Basic Win32 API knowledge<br />
: Knowledge about / understand of compression<br />
: Knowledge about binary file formats<br />
<br />
;Note<br />
This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
;References<br />
: https://docs.microsoft.com/en-us/previous-versions/bb417345(v=msdn.10)<br />
: https://blogs.msdn.microsoft.com/jmstall/2006/11/07/binary-patching-tools-mspatcha-mspatchc/<br />
: https://bugs.winehq.org/show_bug.cgi?id=12501<br />
: https://jira.reactos.org/browse/CORE-8550<br />
<br />
== Win32 Subsystem ==<br />
<br />
=== Multi-Monitor Support ===<br />
Implementation of multi-monitor support has been almost nonexistent until now. Display device drivers expose them thanks to the HwVidGetVideoChildDescriptor callback, which videoprt.sys uses to enumerate monitors attached to it then to pass the information to win32k.sys. It is then the role of win32k.sys to make the link between the two (or more) monitors, either cloning or extending the desktop and exposing the relevant features to client applications.<br />
<br />
;Benefits<br />
: Multi-monitor support would allow ReactOS to become a serious player in professional desktop applications given the increasing number of double-screen installations present in modern workspaces. Document comparison, permanently visible e-mail reader or presentation applications are just a few benefits professionals get when using multiple monitors.<br />
: Multi-Monitor support would also find its place in the casual computing experience. Writing e-mails while watching a movie, or chatting with friends about current football play are things people do in the 21st century!<br />
: From a technical standpoint, properly supporting this feature would improve driver support and WIN32 application compatibility for APIs such as EnumDisplaySettings.<br />
<br />
;References<br />
: http://msdn.microsoft.com/en-us/library/windows/desktop/dd145071%28v=vs.85%29.aspx<br />
: http://msdn.microsoft.com/en-us/library/ff569172%28v=VS.85%29.aspx<br />
: http://www.vesa.org/<br />
: [https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/xpdm/VBoxMPDriver.cpp Virtualbox video driver source]<br />
<br />
;Skills needed<br />
: Experience with Windows display drivers.<br />
: Experience with WINAPI, especially gdi32/user32.: Experience with PnP, as this feature would require detection of connected monitors: Experience with EDID/VESA standards.<br />
<br />
;Difficulty Note<br />
: This is a formidable task. Please get advice from a mentor regarding the recommended skill level and possible reductions in scope to ensure your project proposal is realistic.<br />
<br />
=== User mode printer driver support ===<br />
One of the last parts of the printer stack that is missing from printing support is support for user mode printer drivers (renderers). The scope of this project is to implement support for user mode printer drivers in the window manager (win32k).<br />
<br />
;Note<br />
: This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
=== Multi-Session Support ===<br />
Supporting multiple sessions is a prerequisite for Terminal Services.<br />
<br />
;Note<br />
: This project idea is a stub. Please talk to a mentor for additional information and references.<br />
<br />
== Web Services ==<br />
=== Developer Web Interface ===<br />
Our current web interface for developers is a set of different tools like buildbot and testman, which do no longer integrate very well after the switch to git. So it would be desired to have a more modern and more useful web interface for developers to show commits / builds / PRs etc. and link them together with the ability for proper filtering.<br />
<br />
;Benefits<br />
: This would improve the ability to easily watch commits, trigger tests, find build / test results, compare them, etc.<br />
<br />
;Skills needed<br />
: General web development<br />
: Knowledge of web interfaces to buildbot, GitHub, Atlassian tools<br />
: Ability to design useful interfaces, rich of information, yet easy to overview<br />
<br />
; Ideas<br />
* Create a website that lists commits to all reactos repositories<br />
* Each entry should contain the following information<br />
** Commit hash<br />
** Date and time (both commit and merge to the repository)<br />
** Repository<br />
** Branch<br />
** Author<br />
** Committer<br />
** Build trigger type (i.e. auto, or manual)<br />
** Who triggered the build (for manual triggers)<br />
** Build reason (if given)<br />
** PR (if any)<br />
** Jira ticket (if any)<br />
** Link to build on buildbot<br />
** Link to testman<br />
* Multiple pages should be browsable going backwards in time<br />
* It should also allow filtering by<br />
** Date & time range<br />
** Commit hash<br />
** Repository<br />
** Branch<br />
** Commit type (i.e. PR merged, manual commit)<br />
** Build reason<br />
** PR number<br />
** Jira ticket ID<br />
** Terms in the commit message / PR message / build reason<br />
** Author / commiter / "Only my stuff"<br />
* Allow to trigger builds / tests on individual commits<br />
* Show current state of builds / tests (in progress / finished with link)<br />
* Optional: Customizable columns per user<br />
* Optional: Customizable quick filters<br />
<br />
[[Category:Google Summer of Code]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Google_Summer_of_Code_2019&diff=47775Google Summer of Code 20192019-02-02T08:11:14Z<p>Colin Finck: /* Our Potential Mentors */</p>
<hr />
<div>[[File:GSoC-logo2016.png|frameless|center|600px|link=https://summerofcode.withgoogle.com/]]<br />
<br />
== How To Apply ==<br />
See the [[Google Summer of Code 2019 Ideas]] page for more information.<br />
<br />
=== Get familiar with the code ===<br />
Every student new to ReactOS should begin by obtaining the code through our [https://github.com/reactos/reactos GitHub] repository and performing a first build using our [https://www.reactos.org/wiki/ReactOS_Build_Environment build environment]. This environment ensures consistent build results, eliminates the need to set up your own toolchain and makes ReactOS one of the easiest operating systems to build.<br />
<br />
Creating a fork of the ReactOS repository on GitHub is recommended for most students. This enables the use of branches and pull requests for contributions.<br />
<br />
=== Make a small contribution === <br />
Before your application can be accepted, it is expected that you submit a patch proposing a code change to the project, and work through the process of getting it merged into the master branch. Check out the [https://jira.reactos.org/issues/?filter=14803 starter-project label] on Jira for some ideas of what to work on. You are not required to complete these steps in solitude, and we are happy to help with any part of the process if asked. Please note that while translations, documentation or comment fixes are an easy way to validate your workflow, they do not count toward this requirement.<br />
<br />
Go through [[Development Introduction]] to get started with your contribution.<br />
<br />
=== Reach out ===<br />
Effective communication is a key requirement for a successful project. Students should subscribe to the [http://www.reactos.org/mailman/listinfo/ros-dev ros-dev] mailing list and optionally could join the [irc://irc.freenode.net/#reactos-dev #reactos-dev] channel on Freenode’s IRC network for a live discussion with developers. <br />
<br />
Please ensure you've discussed your proposal with a project member on IRC or on the mailing list before final submission. The developers will have invaluable feedback regarding your project's scope and your approach to it, and your proposal is unlikely to succeed without that feedback.<br />
<br />
=== Fill out your application ===<br />
See the [[#Student Application Form|Student Application Form]] below.<br />
<br />
=== Read the documentation ===<br />
MSDN and plenty of available Windows publications serve as the primary reference for functionality ReactOS seeks to implement. However, there are parts of Windows that are poorly documented or completely undocumented. In these instances, the ReactOS [[Techwiki]] may possess descriptions of the data structures or interfaces. If no documentation exists, students may have to conduct their own research and document the results – following project guidelines on respecting intellectual property. Our mentors can help guide this research process.<br />
<br />
== Our GSoC Adminstrators ==<br />
* [[Colin Finck]]<br />
* [[Amine Khaldi]]<br />
<br />
== Our Potential Mentors ==<br />
* [[Colin Finck]]<br />
* [[User:learn_more|Mark Jansen]]<br />
* Giannis Adamopoulos<br />
* [[User:Gigaherz|David Quintana]]<br />
* [[User:ThePhysicist|Timo Kreuzer]] (Former GSoC Student)<br />
<br />
== Student Application Form ==<br />
Students apply via the [https://summerofcode.withgoogle.com/ Google Summer of Code web site].<br />
Please see the information found there about how GSoC works for students, the timeline, and other details.<br />
<br />
=== General Information ===<br />
* '''Full Name'''<br />
* '''Languages You Speak'''<br />
* '''Timezone'''<br />
* '''ReactOS website Account Name'''<br />
* '''IRC Nickname on Freenode'''<br />
<br />
=== Time Commitment ===<br />
You are required to outline any additional obligations you may have during the summer and how much of your time you will be able to commit to your GSoC project.<br />
Failure to do so will result in a rejection of your application.<br />
<br />
=== Proposed Project ===<br />
Please provide a brief description, in your own words, of the project you are interested in<br />
<br />
=== Proposed Milestones ===<br />
Please propose milestones that can be used to gauge progress on the project.<br />
<br />
=== Legal Requirements ===<br />
Students are required to affirm that the following is true.<br />
I hereby swear that I have not used nor seen the source code to any version of the Windows operating system nor any Microsoft product that may be related to the proposed project that is under a license incompatible with contribution to ReactOS, including but not limited to the leaked Windows 2000 source code and the Windows Research Kernel.<br />
<br />
== FAQ ==<br />
;What criteria did you use to select the individuals who will act as mentors for your organization?<br />
<br />
Our mentors were selected based on availability and familiarity with various parts of the NT architecture including but not limited to networking, filesystems, graphics, the registry, and hardware interfaces. In addition we place emphasis on the ability of a developer to act in a teaching role, who know how to guide students but provide enough freedom to allow the student to explore and learn how to achieve their goals through their own efforts. We will also encourage our mentors to be available to not just their assigned students but also other students that have projects under ReactOS. Many of our mentor candidates are knowledgeable about a wide range of topics and can provide advice for topics beyond their assigned student’s project.<br />
<br />
;What is your plan for dealing with disappearing students?<br />
<br />
While every effort will be made to select students who are unlikely to disappear, we recognize that unpredictable circumstances are always possible. As such, we will require that all students provide backup contact information that we will verify as a failsafe in case students drop out of contact and are unable to inform us directly. Based on the situation, we will try to work with the student to accommodate any special circumstances that arise to ensure a project’s success, but if a student is unable to complete their project we will contact the GSoC team to consider any necessary actions, including marking a project as failed.<br />
<br />
;What is your plan for dealing with disappearing mentors?<br />
<br />
While the mentor candidates we have selected are considered highly reliable, we again recognize that life can result in unexpected circumstances. As noted above, the mentor candidates we have selected are knowledgeable in more than just one specific part of Windows NT, and we will encourage students to consult with not just their assigned mentor but also others taking part in the GSoC program. As such, students will always have advisers available to them even if their assigned mentor is unable to continue with the project thanks to the fact that pretty much all our active contributors are wide-coverage developers.<br />
<br />
;What steps will you take to encourage students to interact with your project's community before and during the program?<br />
<br />
Students whose projects are selected will be introduced to the greater ReactOS community by their mentors. They will also be put in touch with several community members that are actively engaged in regression and feature testing, whom will be invaluable in helping students find a wider audience for testing their code. Students will also be required to provide status updates to the community, which will provide opportunities for feedback and further engagement. Even after a project is completed, a student will have learned a great deal about Windows development and will know that the ReactOS project is available as a resource for any future development work they may pursue on Windows.<br />
<br />
;Besides my mentor, who else is available to help me?<br />
<br />
Besides developers not directly involved as mentors, we encourage all of our mentors to interact with students. As such, consider any mentor or developer as a resource to field questions and help as needed.<br />
<br />
[[Category:Google Summer of Code]]<br />
[[Category:Community]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Google_Summer_of_Code_2019&diff=47774Google Summer of Code 20192019-02-02T08:08:06Z<p>Colin Finck: </p>
<hr />
<div>[[File:GSoC-logo2016.png|frameless|center|600px|link=https://summerofcode.withgoogle.com/]]<br />
<br />
== How To Apply ==<br />
See the [[Google Summer of Code 2019 Ideas]] page for more information.<br />
<br />
=== Get familiar with the code ===<br />
Every student new to ReactOS should begin by obtaining the code through our [https://github.com/reactos/reactos GitHub] repository and performing a first build using our [https://www.reactos.org/wiki/ReactOS_Build_Environment build environment]. This environment ensures consistent build results, eliminates the need to set up your own toolchain and makes ReactOS one of the easiest operating systems to build.<br />
<br />
Creating a fork of the ReactOS repository on GitHub is recommended for most students. This enables the use of branches and pull requests for contributions.<br />
<br />
=== Make a small contribution === <br />
Before your application can be accepted, it is expected that you submit a patch proposing a code change to the project, and work through the process of getting it merged into the master branch. Check out the [https://jira.reactos.org/issues/?filter=14803 starter-project label] on Jira for some ideas of what to work on. You are not required to complete these steps in solitude, and we are happy to help with any part of the process if asked. Please note that while translations, documentation or comment fixes are an easy way to validate your workflow, they do not count toward this requirement.<br />
<br />
Go through [[Development Introduction]] to get started with your contribution.<br />
<br />
=== Reach out ===<br />
Effective communication is a key requirement for a successful project. Students should subscribe to the [http://www.reactos.org/mailman/listinfo/ros-dev ros-dev] mailing list and optionally could join the [irc://irc.freenode.net/#reactos-dev #reactos-dev] channel on Freenode’s IRC network for a live discussion with developers. <br />
<br />
Please ensure you've discussed your proposal with a project member on IRC or on the mailing list before final submission. The developers will have invaluable feedback regarding your project's scope and your approach to it, and your proposal is unlikely to succeed without that feedback.<br />
<br />
=== Fill out your application ===<br />
See the [[#Student Application Form|Student Application Form]] below.<br />
<br />
=== Read the documentation ===<br />
MSDN and plenty of available Windows publications serve as the primary reference for functionality ReactOS seeks to implement. However, there are parts of Windows that are poorly documented or completely undocumented. In these instances, the ReactOS [[Techwiki]] may possess descriptions of the data structures or interfaces. If no documentation exists, students may have to conduct their own research and document the results – following project guidelines on respecting intellectual property. Our mentors can help guide this research process.<br />
<br />
== Our GSoC Adminstrators ==<br />
* [[Colin Finck]]<br />
* [[Amine Khaldi]]<br />
<br />
== Our Potential Mentors ==<br />
* [[Colin Finck]]<br />
* [[User:learn_more|Mark Jansen]]<br />
* Giannis Adamopoulos<br />
* [[User:Gigaherz|David Quintana]]<br />
* [[User:ThePhysicist|Timo Kreuzer]]<br />
<br />
== Student Application Form ==<br />
Students apply via the [https://summerofcode.withgoogle.com/ Google Summer of Code web site].<br />
Please see the information found there about how GSoC works for students, the timeline, and other details.<br />
<br />
=== General Information ===<br />
* '''Full Name'''<br />
* '''Languages You Speak'''<br />
* '''Timezone'''<br />
* '''ReactOS website Account Name'''<br />
* '''IRC Nickname on Freenode'''<br />
<br />
=== Time Commitment ===<br />
You are required to outline any additional obligations you may have during the summer and how much of your time you will be able to commit to your GSoC project.<br />
Failure to do so will result in a rejection of your application.<br />
<br />
=== Proposed Project ===<br />
Please provide a brief description, in your own words, of the project you are interested in<br />
<br />
=== Proposed Milestones ===<br />
Please propose milestones that can be used to gauge progress on the project.<br />
<br />
=== Legal Requirements ===<br />
Students are required to affirm that the following is true.<br />
I hereby swear that I have not used nor seen the source code to any version of the Windows operating system nor any Microsoft product that may be related to the proposed project that is under a license incompatible with contribution to ReactOS, including but not limited to the leaked Windows 2000 source code and the Windows Research Kernel.<br />
<br />
== FAQ ==<br />
;What criteria did you use to select the individuals who will act as mentors for your organization?<br />
<br />
Our mentors were selected based on availability and familiarity with various parts of the NT architecture including but not limited to networking, filesystems, graphics, the registry, and hardware interfaces. In addition we place emphasis on the ability of a developer to act in a teaching role, who know how to guide students but provide enough freedom to allow the student to explore and learn how to achieve their goals through their own efforts. We will also encourage our mentors to be available to not just their assigned students but also other students that have projects under ReactOS. Many of our mentor candidates are knowledgeable about a wide range of topics and can provide advice for topics beyond their assigned student’s project.<br />
<br />
;What is your plan for dealing with disappearing students?<br />
<br />
While every effort will be made to select students who are unlikely to disappear, we recognize that unpredictable circumstances are always possible. As such, we will require that all students provide backup contact information that we will verify as a failsafe in case students drop out of contact and are unable to inform us directly. Based on the situation, we will try to work with the student to accommodate any special circumstances that arise to ensure a project’s success, but if a student is unable to complete their project we will contact the GSoC team to consider any necessary actions, including marking a project as failed.<br />
<br />
;What is your plan for dealing with disappearing mentors?<br />
<br />
While the mentor candidates we have selected are considered highly reliable, we again recognize that life can result in unexpected circumstances. As noted above, the mentor candidates we have selected are knowledgeable in more than just one specific part of Windows NT, and we will encourage students to consult with not just their assigned mentor but also others taking part in the GSoC program. As such, students will always have advisers available to them even if their assigned mentor is unable to continue with the project thanks to the fact that pretty much all our active contributors are wide-coverage developers.<br />
<br />
;What steps will you take to encourage students to interact with your project's community before and during the program?<br />
<br />
Students whose projects are selected will be introduced to the greater ReactOS community by their mentors. They will also be put in touch with several community members that are actively engaged in regression and feature testing, whom will be invaluable in helping students find a wider audience for testing their code. Students will also be required to provide status updates to the community, which will provide opportunities for feedback and further engagement. Even after a project is completed, a student will have learned a great deal about Windows development and will know that the ReactOS project is available as a resource for any future development work they may pursue on Windows.<br />
<br />
;Besides my mentor, who else is available to help me?<br />
<br />
Besides developers not directly involved as mentors, we encourage all of our mentors to interact with students. As such, consider any mentor or developer as a resource to field questions and help as needed.<br />
<br />
[[Category:Google Summer of Code]]<br />
[[Category:Community]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=Google_Summer_of_Code_2019&diff=47663Google Summer of Code 20192019-01-20T07:53:20Z<p>Colin Finck: </p>
<hr />
<div>[[File:GSoC-logo2016.png|frameless|center|600px|link=https://summerofcode.withgoogle.com/]]<br />
<br />
== How To Apply ==<br />
See the [[Google Summer of Code 2019 Ideas]] page for more information.<br />
<br />
=== Get familiar with the code ===<br />
Every student new to ReactOS should begin by obtaining the code through our [https://github.com/reactos/reactos GitHub] repository and performing a first build using our [https://www.reactos.org/wiki/ReactOS_Build_Environment build environment]. This environment ensures consistent build results, eliminates the need to set up your own toolchain and makes ReactOS one of the easiest operating systems to build.<br />
<br />
Creating a fork of the ReactOS repository on GitHub is recommended for most students. This enables the use of branches and pull requests for contributions.<br />
<br />
=== Make a small contribution === <br />
Before your application can be accepted, it is expected that you submit a patch proposing a code change to the project, and work through the process of getting it merged into the master branch. Check out the [https://jira.reactos.org/issues/?filter=14803 starter-project label] on Jira for some ideas of what to work on. You are not required to complete these steps in solitude, and we are happy to help with any part of the process if asked. Please note that while translations, documentation or comment fixes are an easy way to validate your workflow, they do not count toward this requirement.<br />
<br />
Go through [[Development Introduction]] to get started with your contribution.<br />
<br />
=== Reach out ===<br />
Effective communication is a key requirement for a successful project. Students should subscribe to the [http://www.reactos.org/mailman/listinfo/ros-dev ros-dev] mailing list and optionally could join the [irc://irc.freenode.net/#reactos-dev #reactos-dev] channel on Freenode’s IRC network for a live discussion with developers. <br />
<br />
Please ensure you've discussed your proposal with a project member on IRC or on the mailing list before final submission. The developers will have invaluable feedback regarding your project's scope and your approach to it, and your proposal is unlikely to succeed without that feedback.<br />
<br />
=== Fill out your application ===<br />
See the [[#Student Application Form|Student Application Form]] below.<br />
<br />
=== Read the documentation ===<br />
MSDN and plenty of available Windows publications serve as the primary reference for functionality ReactOS seeks to implement. However, there are parts of Windows that are poorly documented or completely undocumented. In these instances, the ReactOS [[Techwiki]] may possess descriptions of the data structures or interfaces. If no documentation exists, students may have to conduct their own research and document the results – following project guidelines on respecting intellectual property. Our mentors can help guide this research process.<br />
<br />
== Our GSoC Adminstrators ==<br />
* [[Colin Finck]]<br />
<br />
== Our Potential Mentors ==<br />
TBD<br />
<br />
== Student Application Form ==<br />
Students apply via the [https://summerofcode.withgoogle.com/ Google Summer of Code web site].<br />
Please see the information found there about how GSoC works for students, the timeline, and other details.<br />
<br />
=== General Information ===<br />
* '''Full Name'''<br />
* '''Languages You Speak'''<br />
* '''Timezone'''<br />
* '''ReactOS website Account Name'''<br />
* '''IRC Nickname on Freenode'''<br />
<br />
=== Time Commitment ===<br />
You are required to outline any additional obligations you may have during the summer and how much of your time you will be able to commit to your GSoC project.<br />
Failure to do so will result in a rejection of your application.<br />
<br />
=== Proposed Project ===<br />
Please provide a brief description, in your own words, of the project you are interested in<br />
<br />
=== Proposed Milestones ===<br />
Please propose milestones that can be used to gauge progress on the project.<br />
<br />
=== Legal Requirements ===<br />
Students are required to affirm that the following is true.<br />
I hereby swear that I have not used nor seen the source code to any version of the Windows operating system nor any Microsoft product that may be related to the proposed project that is under a license incompatible with contribution to ReactOS, including but not limited to the leaked Windows 2000 source code and the Windows Research Kernel.<br />
<br />
== FAQ ==<br />
;What criteria did you use to select the individuals who will act as mentors for your organization?<br />
<br />
Our mentors were selected based on availability and familiarity with various parts of the NT architecture including but not limited to networking, filesystems, graphics, the registry, and hardware interfaces. In addition we place emphasis on the ability of a developer to act in a teaching role, who know how to guide students but provide enough freedom to allow the student to explore and learn how to achieve their goals through their own efforts. We will also encourage our mentors to be available to not just their assigned students but also other students that have projects under ReactOS. Many of our mentor candidates are knowledgeable about a wide range of topics and can provide advice for topics beyond their assigned student’s project.<br />
<br />
;What is your plan for dealing with disappearing students?<br />
<br />
While every effort will be made to select students who are unlikely to disappear, we recognize that unpredictable circumstances are always possible. As such, we will require that all students provide backup contact information that we will verify as a failsafe in case students drop out of contact and are unable to inform us directly. Based on the situation, we will try to work with the student to accommodate any special circumstances that arise to ensure a project’s success, but if a student is unable to complete their project we will contact the GSoC team to consider any necessary actions, including marking a project as failed.<br />
<br />
;What is your plan for dealing with disappearing mentors?<br />
<br />
While the mentor candidates we have selected are considered highly reliable, we again recognize that life can result in unexpected circumstances. As noted above, the mentor candidates we have selected are knowledgeable in more than just one specific part of Windows NT, and we will encourage students to consult with not just their assigned mentor but also others taking part in the GSoC program. As such, students will always have advisers available to them even if their assigned mentor is unable to continue with the project thanks to the fact that pretty much all our active contributors are wide-coverage developers.<br />
<br />
;What steps will you take to encourage students to interact with your project's community before and during the program?<br />
<br />
Students whose projects are selected will be introduced to the greater ReactOS community by their mentors. They will also be put in touch with several community members that are actively engaged in regression and feature testing, whom will be invaluable in helping students find a wider audience for testing their code. Students will also be required to provide status updates to the community, which will provide opportunities for feedback and further engagement. Even after a project is completed, a student will have learned a great deal about Windows development and will know that the ReactOS project is available as a resource for any future development work they may pursue on Windows.<br />
<br />
;Besides my mentor, who else is available to help me?<br />
<br />
Besides developers not directly involved as mentors, we encourage all of our mentors to interact with students. As such, consider any mentor or developer as a resource to field questions and help as needed.<br />
<br />
[[Category:Google Summer of Code]]<br />
[[Category:Community]]</div>Colin Finckhttps://reactos.org/wiki/index.php?title=0.5.0&diff=471560.5.02018-11-29T22:07:42Z<p>Colin Finck: /* Changes planned (2018) */</p>
<hr />
<div>This roadmap is subject to change.<br />
<br />
== Changes planned (2018) == <br />
* Replace fastfat with fastfat_new [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]), Pierre Schweitzer<br />
** Responsible person: Pierre Schweitzer<br />
* Implement compatibility layer for NT6+ executables [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]), [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Responsible person: Mark Jansen<br />
* Sound subsystem [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
** Responsible person: Let's ask Aleksandar Andrejevic?<br />
* 64-bit build (without WoW64) [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
** Responsible person: Timo Kreuzer<br />
* UEFI boot [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]]) [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
** Can possibly be achieved faster if a custom boot loader is written instead of trying to get the entire boot process NT6+ compatible [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Office 2010 reliably [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Requires ReactOS NTLM implementation [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
*** Can be made a GSoC task :)<br />
* WiFi [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Needs some wlanapi implementations. Unfortunately, Christoph can't do this any time soon, but he basically uses MSDN and RpcView to get an insight how Windows does it. Not too different from implementing any other RPC component. Several ROS devs should be able to help on that. [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* PS/2 driver compatible with each and every computer, not needing any maintained hardware list [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Stable USB mouse, keyboard, storage support [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Retire old MM and have ARM3 take over all duties [[User:Harteex|Harteex]] ([[User talk:Harteex|talk]])<br />
** Responsible person: Let's ask Jerome Gardou?<br />
* GUI 1st Stage Setup with combined Boot-CD and Live-CD [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Responsible person: Hermes Belusca-Maito<br />
<br />
== Changes planned ==<br />
<br />
Taken from [https://reactos.org/project-news/february-2016-meeting-minutes February 2016 meeting minutes], some points would be:<br />
<br />
* Getting default software flawlessly to run (at least one browser, office suite, multimediaplayer, document viewer, etc)<br />
* Finishing printing support<br />
* Finishing wifi implementation and add a graphical frontend<br />
* Kill almost all bugs in our 3 common virtualization tools<br />
* Minimize the probability to get a BSOD<br />
* Finishing the shell. (Toolbars, loading/saving settings, etc)<br />
* Extend USB support to use more than storage/HID devices (most important are printers, WIFI, 3G sticks)<br />
* Remove almost every graphical glitches and bugs<br />
* Fix MM/CC as is a source of evil regarding all of this points<br />
* Same for WIN32SS<br />
* A bonus would be to audit our forked wine code for possible improvements, unneeded or duplicated code<br />
<br />
{{Navigation Versions}}</div>Colin Finckhttps://reactos.org/wiki/index.php?title=0.5.0&diff=471530.5.02018-11-29T21:58:36Z<p>Colin Finck: /* Changes planned (2018) */</p>
<hr />
<div>This roadmap is subject to change.<br />
<br />
== Changes planned (2018) == <br />
* Replace fastfat with fastfat_new [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]), Pierre Schweitzer<br />
** Responsible person: Pierre Schweitzer<br />
* Implement compatibility layer for NT6+ executables [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]), [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Responsible person: Mark Jansen<br />
* Sound subsystem [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
** Responsible person: Let's ask Aleksandar Andrejevic?<br />
* 64-bit build (without WoW64) [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
** Responsible person: Timo Kreuzer<br />
* UEFI boot [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Can possibly be achieved faster if a custom boot loader is written instead of trying to get the entire boot process NT6+ compatible [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Office 2010 reliably [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Requires ReactOS NTLM implementation [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
*** Can be made a GSoC task :)<br />
* WiFi [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Needs some wlanapi implementations. Unfortunately, Christoph can't do this any time soon, but he basically uses MSDN and RpcView to get an insight how Windows does it. Not too different from implementing any other RPC component. Several ROS devs should be able to help on that. [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* PS/2 driver compatible with each and every computer, not needing any maintained hardware list [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Stable USB mouse, keyboard, storage support [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Retire old MM and have ARM3 take over all duties [[User:Harteex|Harteex]] ([[User talk:Harteex|talk]])<br />
** Responsible person: Let's ask Jerome Gardou?<br />
<br />
== Changes planned ==<br />
<br />
Taken from [https://reactos.org/project-news/february-2016-meeting-minutes February 2016 meeting minutes], some points would be:<br />
<br />
* Getting default software flawlessly to run (at least one browser, office suite, multimediaplayer, document viewer, etc)<br />
* Finishing printing support<br />
* Finishing wifi implementation and add a graphical frontend<br />
* Kill almost all bugs in our 3 common virtualization tools<br />
* Minimize the probability to get a BSOD<br />
* Finishing the shell. (Toolbars, loading/saving settings, etc)<br />
* Extend USB support to use more than storage/HID devices (most important are printers, WIFI, 3G sticks)<br />
* Remove almost every graphical glitches and bugs<br />
* Fix MM/CC as is a source of evil regarding all of this points<br />
* Same for WIN32SS<br />
* A bonus would be to audit our forked wine code for possible improvements, unneeded or duplicated code<br />
<br />
{{Navigation Versions}}</div>Colin Finckhttps://reactos.org/wiki/index.php?title=0.5.0&diff=471510.5.02018-11-29T21:56:24Z<p>Colin Finck: /* Changes planned (2018) */</p>
<hr />
<div>This roadmap is subject to change.<br />
<br />
== Changes planned (2018) == <br />
* Replace fastfat with fastfat_new [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]), Pierre Schweitzer<br />
** Responsible person: Pierre Schweitzer<br />
* Implement compatibility layer for NT6+ executables [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]), [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Responsible person: Mark Jansen<br />
* Sound subsystem [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
* 64-bit build (without WoW64) [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
** Responsible person: Timo Kreuzer<br />
* UEFI boot [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Can possibly be achieved faster if a custom boot loader is written instead of trying to get the entire boot process NT6+ compatible [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Office 2010 reliably [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Requires ReactOS NTLM implementation [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
*** Can be made a GSoC task :)<br />
* WiFi [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Needs some wlanapi implementations. Unfortunately, Christoph can't do this any time soon, but he basically uses MSDN and RpcView to get an insight how Windows does it. Not too different from implementing any other RPC component. Several ROS devs should be able to help on that. [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* PS/2 driver compatible with each and every computer, not needing any maintained hardware list [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Stable USB mouse, keyboard, storage support [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Retire old MM and have ARM3 take over all duties [[User:Harteex|Harteex]] ([[User talk:Harteex|talk]]) 21:49, 29 November 2018 (UTC)<br />
<br />
== Changes planned ==<br />
<br />
Taken from [https://reactos.org/project-news/february-2016-meeting-minutes February 2016 meeting minutes], some points would be:<br />
<br />
* Getting default software flawlessly to run (at least one browser, office suite, multimediaplayer, document viewer, etc)<br />
* Finishing printing support<br />
* Finishing wifi implementation and add a graphical frontend<br />
* Kill almost all bugs in our 3 common virtualization tools<br />
* Minimize the probability to get a BSOD<br />
* Finishing the shell. (Toolbars, loading/saving settings, etc)<br />
* Extend USB support to use more than storage/HID devices (most important are printers, WIFI, 3G sticks)<br />
* Remove almost every graphical glitches and bugs<br />
* Fix MM/CC as is a source of evil regarding all of this points<br />
* Same for WIN32SS<br />
* A bonus would be to audit our forked wine code for possible improvements, unneeded or duplicated code<br />
<br />
{{Navigation Versions}}</div>Colin Finckhttps://reactos.org/wiki/index.php?title=0.5.0&diff=471490.5.02018-11-29T21:43:04Z<p>Colin Finck: /* Changes planned (2018) */</p>
<hr />
<div>This roadmap is subject to change.<br />
<br />
== Changes planned (2018) == <br />
* Replace fastfat with fastfat_new [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]), Pierre Schweitzer<br />
** Responsible person: Pierre Schweitzer<br />
* Implement compatibility layer for NT6+ executables [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]), [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Responsible person: Mark Jansen<br />
* Sound subsystem [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
* 64-bit build (without WoW64) [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
** Responsible person: Timo Kreuzer<br />
* UEFI boot [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Can possibly be achieved faster if a custom boot loader is written instead of trying to get the entire boot process NT6+ compatible [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Office 2010 reliably [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Requires ReactOS NTLM implementation [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* WiFi [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Needs some wlanapi implementations. Unfortunately, Christoph can't do this any time soon, but he basically uses MSDN and RpcView to get an insight how Windows does it. Not too different from implementing any other RPC component. Several ROS devs should be able to help on that. [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* PS/2 driver compatible with each and every computer, not needing any maintained hardware list [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Stable USB mouse, keyboard, storage support [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
<br />
== Changes planned ==<br />
<br />
Taken from [https://reactos.org/project-news/february-2016-meeting-minutes February 2016 meeting minutes], some points would be:<br />
<br />
* Getting default software flawlessly to run (at least one browser, office suite, multimediaplayer, document viewer, etc)<br />
* Finishing printing support<br />
* Finishing wifi implementation and add a graphical frontend<br />
* Kill almost all bugs in our 3 common virtualization tools<br />
* Minimize the probability to get a BSOD<br />
* Finishing the shell. (Toolbars, loading/saving settings, etc)<br />
* Extend USB support to use more than storage/HID devices (most important are printers, WIFI, 3G sticks)<br />
* Remove almost every graphical glitches and bugs<br />
* Fix MM/CC as is a source of evil regarding all of this points<br />
* Same for WIN32SS<br />
* A bonus would be to audit our forked wine code for possible improvements, unneeded or duplicated code<br />
<br />
{{Navigation Versions}}</div>Colin Finckhttps://reactos.org/wiki/index.php?title=0.5.0&diff=471480.5.02018-11-29T21:42:38Z<p>Colin Finck: /* Changes planned (2018) */</p>
<hr />
<div>This roadmap is subject to change.<br />
<br />
== Changes planned (2018) == <br />
* Replace fastfat with fastfat_new [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]), Pierre Schweitzer<br />
** Responsible person: Pierre Schweitzer<br />
* Implement compatibility layer for NT6+ executables [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]), [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Responsible person: Mark Jansen<br />
* Sound subsystem [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
* 64-bit build (without WoW64) [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
** Responsible person: Timo Kreuzer<br />
* UEFI boot [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Can possibly be achieved faster if a custom boot loader is written instead of trying to get the entire boot process NT6+ compatible [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Office 2010 reliably [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Requires ReactOS NTLM implementation [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* WiFi [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Needs some wlanapi implementations. Unfortunately, Christoph can't do this any time soon, but he basically uses MSDN and RpcView to get an insight how Windows does it. Not too different from implementing any other RPC component. Several ROS devs should be able to help on that. [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* PS/2 driver compatible with each and every computer, not needing any maintained hardware list [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Stable USB mouse, keyboard, storage support [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
<br />
== Changes planned ==<br />
<br />
Taken from [https://reactos.org/project-news/february-2016-meeting-minutes February 2016 meeting minutes], some points would be:<br />
<br />
* Getting default software flawlessly to run (at least one browser, office suite, multimediaplayer, document viewer, etc)<br />
* Finishing printing support<br />
* Finishing wifi implementation and add a graphical frontend<br />
* Kill almost all bugs in our 3 common virtualization tools<br />
* Minimize the probability to get a BSOD<br />
* Finishing the shell. (Toolbars, loading/saving settings, etc)<br />
* Extend USB support to use more than storage/HID devices (most important are printers, WIFI, 3G sticks)<br />
* Remove almost every graphical glitches and bugs<br />
* Fix MM/CC as is a source of evil regarding all of this points<br />
* Same for WIN32SS<br />
* A bonus would be to audit our forked wine code for possible improvements, unneeded or duplicated code<br />
<br />
{{Navigation Versions}}</div>Colin Finckhttps://reactos.org/wiki/index.php?title=0.5.0&diff=471470.5.02018-11-29T21:41:42Z<p>Colin Finck: /* Changes planned (2018) */</p>
<hr />
<div>This roadmap is subject to change.<br />
<br />
== Changes planned (2018) ==<br />
* Replace fastfat with fastfat_new [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
* Implement compatibility layer for NT6+ executables [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]), [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Responsible person: Mark Jansen<br />
* Sound subsystem [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
* 64-bit build (without WoW64) [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
** Responsible person: Timo Kreuzer<br />
* UEFI boot [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Can possibly be achieved faster if a custom boot loader is written instead of trying to get the entire boot process NT6+ compatible [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Office 2010 reliably [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Requires ReactOS NTLM implementation [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* WiFi [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Needs some wlanapi implementations. Unfortunately, Christoph can't do this any time soon, but he basically uses MSDN and RpcView to get an insight how Windows does it. Not too different from implementing any other RPC component. Several ROS devs should be able to help on that. [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* PS/2 driver compatible with each and every computer, not needing any maintained hardware list [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
* Stable USB mouse, keyboard, storage support [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
<br />
== Changes planned ==<br />
<br />
Taken from [https://reactos.org/project-news/february-2016-meeting-minutes February 2016 meeting minutes], some points would be:<br />
<br />
* Getting default software flawlessly to run (at least one browser, office suite, multimediaplayer, document viewer, etc)<br />
* Finishing printing support<br />
* Finishing wifi implementation and add a graphical frontend<br />
* Kill almost all bugs in our 3 common virtualization tools<br />
* Minimize the probability to get a BSOD<br />
* Finishing the shell. (Toolbars, loading/saving settings, etc)<br />
* Extend USB support to use more than storage/HID devices (most important are printers, WIFI, 3G sticks)<br />
* Remove almost every graphical glitches and bugs<br />
* Fix MM/CC as is a source of evil regarding all of this points<br />
* Same for WIN32SS<br />
* A bonus would be to audit our forked wine code for possible improvements, unneeded or duplicated code<br />
<br />
{{Navigation Versions}}</div>Colin Finckhttps://reactos.org/wiki/index.php?title=0.5.0&diff=471460.5.02018-11-29T21:37:10Z<p>Colin Finck: /* Changes planned (2018) */</p>
<hr />
<div>This roadmap is subject to change.<br />
<br />
== Changes planned (2018) ==<br />
* Replace fastfat with fastfat_new [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
* Implement compatibility layer for NT6+ executables [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]), [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Responsible person: Mark Jansen<br />
* Sound subsystem [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
* 64-bit build (without WoW64) [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
** Responsible person: Timo Kreuzer<br />
<br />
== Changes planned ==<br />
<br />
Taken from [https://reactos.org/project-news/february-2016-meeting-minutes February 2016 meeting minutes], some points would be:<br />
<br />
* Getting default software flawlessly to run (at least one browser, office suite, multimediaplayer, document viewer, etc)<br />
* Finishing printing support<br />
* Finishing wifi implementation and add a graphical frontend<br />
* Kill almost all bugs in our 3 common virtualization tools<br />
* Minimize the probability to get a BSOD<br />
* Finishing the shell. (Toolbars, loading/saving settings, etc)<br />
* Extend USB support to use more than storage/HID devices (most important are printers, WIFI, 3G sticks)<br />
* Remove almost every graphical glitches and bugs<br />
* Fix MM/CC as is a source of evil regarding all of this points<br />
* Same for WIN32SS<br />
* A bonus would be to audit our forked wine code for possible improvements, unneeded or duplicated code<br />
<br />
{{Navigation Versions}}</div>Colin Finckhttps://reactos.org/wiki/index.php?title=0.5.0&diff=471450.5.02018-11-29T21:34:44Z<p>Colin Finck: /* Changes planned (2018) */</p>
<hr />
<div>This roadmap is subject to change.<br />
<br />
== Changes planned (2018) ==<br />
* Replace fastfat with fastfat_new [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
* Implement compatibility layer for NT6+ executables [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]]), [[User:Colin Finck|Colin Finck]] ([[User talk:Colin Finck|talk]])<br />
** Responsible person: Mark Jansen<br />
* Sound subsystem [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
* 64-bit build (without WoW64) [[User:Extravert34|Extravert34]] ([[User talk:Extravert34|talk]])<br />
<br />
== Changes planned ==<br />
<br />
Taken from [https://reactos.org/project-news/february-2016-meeting-minutes February 2016 meeting minutes], some points would be:<br />
<br />
* Getting default software flawlessly to run (at least one browser, office suite, multimediaplayer, document viewer, etc)<br />
* Finishing printing support<br />
* Finishing wifi implementation and add a graphical frontend<br />
* Kill almost all bugs in our 3 common virtualization tools<br />
* Minimize the probability to get a BSOD<br />
* Finishing the shell. (Toolbars, loading/saving settings, etc)<br />
* Extend USB support to use more than storage/HID devices (most important are printers, WIFI, 3G sticks)<br />
* Remove almost every graphical glitches and bugs<br />
* Fix MM/CC as is a source of evil regarding all of this points<br />
* Same for WIN32SS<br />
* A bonus would be to audit our forked wine code for possible improvements, unneeded or duplicated code<br />
<br />
{{Navigation Versions}}</div>Colin Finck