by vicmarcal | December 6, 2017

The ReactOS Project is pleased to announce the release of version 0.4.7 as we continue to work on releasing every three months.

We’re especially pleased to present this release as the very first one that’s been developed in our new Git/GitHub repository. Moving from Subversion to GitHub has proven to be an invaluable way to reach new testers, users and improve the overall awareness of the ReactOS project.

To highlight the impact we’ve had since we moved to GitHub two months ago, ReactOS now leads the Win32Api and OsDev categories in Github, overtaking many amazing and well established projects.

User Experience

0.4.5 introduced visual styles support, 0.4.6 matured it, and now 0.4.7 has further improved support for styles created for Windows XP. If you haven’t already, just follow us on Twitter so you can see first hand the many skins being applied in ReactOS. Giannis Adamopoulos solved many issues in which ReactOS was managing transparency and messaging. His work on msstyles support paid off, as it’s reduced visual glitches in many applications.

Support for Shell extension for files has been included by Giannis in this new version, and several other shell extension improvements have been worked on by Eric Kohl. The quick launch shell extension, developed by Shriraj Sawant under Google Summer of Code 2017, can also be enabled manually within this release for an early peek into this feature.

At the bottom left you can see the new Quick Launch in action

James Tabor has put in a great deal of effort into getting the ReactOS painting process as close to Windows as possible. Furthermore, Katayama Hirofumi MZ has fixed the anti-aliasing text when a button was grayed out (and which was impossible to read before this fix).

Another major achievement brought to you by Giannis has been to solve the Clipboard and Recycle Bin bugs. Now, in 0.4.7, ReactOS won’t crash due an invalid/empty clipboard as it did previously, copy/pasting multiple files and pasting folders in the background should work well and now follows the Windows specs more closely.

In 0.4.7, ReactOS now correctly manages file deletions when dragging them to the Recycle Bin thanks to a patch from Serge Gautherie. Add to that numerous fixes regarding Drag and Drop and the whole user experience now feels much more polished for end users.

Thanks to Kamil, several glitches that have been evident in the free/available pie chart for file systems are now gone, and he has fixed several other user experience issues such as Notepad showing multiple instances of find/replace windows, or stopping Bitvise SSH Server Control Panel from crashing due to a bug in NtGdiGetPixel().

Hardware support

ReactOS 0.4.7 allows you to reliably install the ISO from any drive without needing a CD, as a result of the work Colin Finck has done on the CDFS/ISO-9660 filesystem driver. We’re very thankful to our community about this point in particular, as the actual development work above happened at the ReactOS Hackfest, which was only possible thanks to your ongoing support and donations!

Thomas Faber has addressed an issue in the HDAUDBUS driver that prevented VMware from loading ReactOS when a HD sound card is present. He has also addressed an issue in mbedtls (the SSL support library that we use in ReactOS) that could affect old hardware that doesn't support SSE2 instructions. Previous crashes on older hardware are now much less likely when interacting with SSL connections.

In addition to the above, ReactOS 0.4.7 is now properly checking the end-of-memory-map entries and aligning physical addresses thanks to some work done by Serge. That contributed further to better hardware compatibility.

If you have encountered problems when trying to run previous version of ReactOS on your PC, please consider retrying with 0.4.7 and sending us bug reports so we can work on them.

New ReactOS Application Manager

As part of the Google Summer of Code program, the ReactOS Application Manager was improved in many areas by Alexander Shaposhnikov, including many new features and fixes. Now you can install multiples pieces of software from Rapps in bulk and downloads are now done in the background ensuring you can continue to use the app whilst installing. Install percentages are now shown, force update finally works, the Installed category is now back, and the details sections show enhanced information and various other fixes and features.

More info about this new version in Rapps blog posts.

Applications/Games Compatibility

For those who enjoy retro-gaming, Aleksandar Andrejević has fixed linear 4-bpp mode, meaning even more old and addictive games are now playable in ReactOS, and your productivity has another a good reason to fall…

Mark Jansen has fixed a critical issue regarding services. ReactOS 0.4.7 now supports creating an interactive service under the LocalSystem account. Now, among other software, VMWare Horizon setup works in ReactOS. Mark is also working on Application Compatibility support (shims) which is still an ongoing project.

Thanks to Eric, the User/group/share management modules (netapi.dll, netapi32.dll and samsrv) have been greatly developed in the 0.4.7 release, getting them even further in terms of compatibility.

LibreOffice 5 working in ReactOS 0.4.7

Kernel and Filesystems

ReactOS is now able to handle Ext2, Ext3, Ext4, BtrFS, ReiserFS, FFS and NFS partitions. We’re proud to say that ReactOS natively supports more File Systems than all Windows versions combined!

Continuing on filesystems, Pierre Schweitzer has implemented the fsutil tool, which arrived in Windows 2003, and is now available through ReactOS as open source. Furthermore, the ReactOS fsutil tool also supports FAT file systems whereas its Windows counterpart does not, so this is another instance of ReactOS improving something over what Microsoft originally offers.

Fsutil has been developed against Windows, and was used to test the information returned by our volumes, but also to test how the ReactOS storage stack works. This helped shed some light on how Windows manages dirty bits, opening of volumes and other internal filesystem actions, and has proven to be really useful to discover bugs in file systems and also in system libraries, which have been already fixed in 0.4.7.

Pierre’s work on FastFat, fixing reference counting overflows and file attributes settings, correcting the opening counts, implementing statistics counting and squeezing bugs in the Common Cache, is all part of this enhanced stability in 0.4.7. It got also improved thanks to the upgrades of the various file systems drivers supported by ReactOS (Ext2 and BtrFS) and the fixes they required to avoid regressions.

New apis have been implemented in Kernel32.dll, which has seen several rewrites in order to fix bugs detected by our test suite, but also to bring in support for Windows 2003 features such as reparse points and mount manager backed volumes.

Timo Kreuzer has also fixed some Memory Manager bugs with the goal of more stability. If 0.4.6 surprised you with its stability thanks to the work being done in this area, then you will find 0.4.7 to be another step further in that regard.

Eric Kohl has added initial STORPORT/STORAHCI implementations that can be enabled manually for now via registry as an alternative to the default UniATA driver, in an effort to get closer to native behavior and maximize compatibility.

Third Party Modules

ReactOS depends on 3rd party open source projects so in 0.4.7 we’ve updated them to their latest version. Libpng, mpg123, mbedtls, btrfs,along with the many modules that Wine shares with us, which are individually synched by Amine Khaldi, that ReactOS can use in the user mode. We express our gratitude to every single open source project we use, and send regards to all teams behind them. We also keep contributing back to them, in the spirit of open source, whenever we can. For instance, David contributed a 64bit related fix to the MKISOFS project, and several ReactOS developers contribute patches back to the Wine project and also Wine Staging, in addition to performing patch reviews in the appropriate mailing list.

ReactOS compiling itself! (Still more work to be done!)

Quality Assurance

ReactOS believes heavily in QA so many new tests have been integrated and implemented covering critical areas as Memory Manager (IO MDL, MmBuildMdlForNonPagedPool, etc..) or Common Cache. The ReactOS testing infrastructure now supports testing File System mini-filters which is an important step forward to ensure future development in the upcoming filter manager. This new version of ReactOS has gone through several Coverity scans to detect and fix critical bugs detected. In addition to automated tests, ReactOS enjoyed impressive testing coverage thanks to the manual tests for the Release Candidates by Joachim Henze.

General notes, tests, and changelog for the release can be found at their respective links. A less technical community changelog for ReactOS 0.4.7 is also available.

ISO images are ready in the ReactOS Download page.

Some statistics

The oldest bug fixed was CORE-2366 . "Rapps: modify link does not work". Reported 10 years ago.

During these 3 months, 453 bugs have been resolved: 263 marked as fixed, 46 as duplicates, 56 as won't fix, 41 as incomplete, 47 as can not reproduce.

246 bugs fixed were directly related with the operating system, 12 from ReactOS online services, 1 from ReactOS test suite, 3 from ReactOS Building Environment and 1 from ReactOS RosApps.