Wine TODO List
Top level page for fixes and improvements for Wine.
IntegrationProjects: for cool ideas on how to improve Wine's integration with Desktop Linux
JanitorialProjects: various cleanups, fixes, etc. that apply to the entire tree
Fun Projects: lots of side tasks that would be great to do
DLLTodoList: place-holder for DLL maintainers to list all DLLs having TODO lists
DirectX-ToDo: items and links for remaining tasks in Wine's DirectX implementation
AppdbInfo: todo and other information about the state of the AppDB
DIBEngine: create a new DIB engine in Wine instead of using X11's
CygwinSupport: get Cygwin apps working on Wine
Winelib: get various open source Win32 apps to work with Winelib
If you would like to run the tests on your Windows box, you can download a prebuilt 32-bit Windows .exe from http://test.winehq.org/builds/winetest-latest.exe (or a 64-bit Windows .exe from http://test.winehq.org/builds/winetest64-latest.exe).
Smatch is basically a patch to gcc-3.1.1 that makes gcc dump its internal representation of the code and a set of perl modules/scripts to ease the parsing of the dumped code. Most of the perl scripts are for the Linux kernel, but writing new scripts seems to be easy.
Michael Stefaniuc adapted an existing script for the kernel to find code paths with missing LeaveCriticalSection's. Scripts to find some other useful things like fd, DC, and GDI object leaks should be easy to write.
There is a web page about Wine and Smatch. It includes also a table with the bugs found by the smatch scripts: http://people.redhat.com/mstefani/wine/smatch/
See Also: StaticAnalysis
- Code a tool to check wine configuration (e.g. ptrace bug, cdrom device access, opengl direct rendering,...)
- Make a D3D demo to include the Wine source - spinning Wine glass and Tux logo?
- Add i18n section to Wine Developer's Guide
Handling initial install & upgrades
- Improve the documentation. It has been suggested a number of times on wine-users that the user documentation needs improvement. Wine has three sources of documentation that could be improved in one way or another:
Moved from Static ToDo Page
This list of tasks was originally a static page in the status section of WineHQ. It has not been maintained and may contain completed/invalidated entries. If you know that a task is no longer necessary (completed/invalidated), please check it off, strike a line through it, or delete it from the page.
National Language Support
We currently lack a way to model hierarchical resources like those required by calendar information (each locale has a variable number of calendars, with different attributes). This is a show stopper for completing the NLS Api (Get/EnumCalendarInfo etc).
- Make sure ASCII functions call the Unicode one and not the other way around.
- Add localization to more languages.(will probably never be completely finished)
- Add localization to more parts of Wine.(will probably never be completely finished)
- Better support of Chinese, Korean, Japanese...(currently in works)
Better support of BiDi - Arabic, Hebrew...
- Add support for MZ_SUPPORTED
- Remove/rewrite wineisms from code
- Visual C++'s native COM support
- Import registry files generated by Windows 2000 regedit.
Fix invocation thru WinHelp
- Lots of macros are still missing
- Allow flexibility in FS "mounting" (for example, SMB shares)
- Write a printer configuration applet
- Implement the "Printers" Folder (shell32)
- Implement the Printer configuration Dialogs (shell32)
- Winemaker fixes
- Run C regression tests on Windows with MSVC
- wineconsole: add configuration bar + resizing capabilities
- Updates, updates, and more updates
- Add support for keyboard layout APIs.
- Implement security APIs and make them use native OS security facilities.
- Implement the undocumented "NT Ports" API (aka "LPC") used by NT's rpcrt4
Split 16/32 function, finish moving stuff into ntdll (review FS & device support)
- Implement non-local named pipes and mailslots over SMB
- Implement SMB over Netbios
- SIO_GET_INTERFACE_LIST support for IPX
- IPv6 support
- More unit tests, e.g. for asynchronous IO.
- Make sure OOB data is handled properly.
- WS2: Implement service programming interface (SPI), use for supporting other services.
- Try to provide more services such as IrDA natively.
- Fix stubs left in ws2_32.spec
- Fill out the matrix of per-type /Oi marshalling API's.
- Some real RPC tests; although there are some tests of some peripheral rpcrt4 APIs, no actual RPCs are tested.
- Implement the OXID resolver and other ORPC peccadilloes
- Integrate ICreateTypeLib support with ITypeLib support
- User defined types (e.g. IRecordInfo)
- Custom marshalling functions for various data types
- Implement the audio compression codecs.
- Fix Sound Blaster emulation.
- Improve audio latency
- No longer use the hack in Wine sound drivers to map the DSound driver interface to an existing WinMM driver (impacts dsound.dll and winmm + all low level audio drivers; will likely require a real installation scheme for MM drivers)
ALSA multimedia driver:
- Check for 1.0 correctness
MCI (Media Control Interface) drivers:
- Missing the mcianim drivers.
- Handling of palettes
- Lots of messages still need to be handled
- Support more and less than one audio stream
- Stopping while playing should stop audio playback ASAP
- Opening must be possible without filename (use load later to)
- Make the whole library thread safe
- Interface for AVI files, the native version has problems with reading Wine's files
- API for clipboard, currently only stubs
- AVIFileProxy is missing.
- Implement IAVIStreaming (doesn't break functionality but limits performance significantly)
Support all flags in DrawDib
Add palette handling to DrawDib
- Semi-stub implementation for file dialogs with AVI preview.
- Need to use OFN_ENABLEHOOK flag.
- Stub implementation for codec-selection-dialog
- Resources are missing (also see the 2 above points)
StretchDib method is missing
- Many 16-bit methods are missing
- MCIWnd shouldn't open device with filename if one isn't given
- MCIWnd leaves Windows empty when opening a device fails.
avicap32 (video capture):
- Fully implement the capture graph-builder
- Implement infinite pin tee and smart tee filters
- Audio capture-filter and in-mixer prop still needed
- Still need vfw-capture and vfw-capture prop
- Need an avi compressor, muxer, and prop/prop1 for the muxer
- Implement a filewrite