Wine is one of the best known, but least understood open source projects. It is a mystic application that everyone knows about, many use, but few truly understand. Reading forum posts, blog entries and tutorials about Wine show that Wine is surrounded by many myths and half truths. In this article, we will attempt to clear up some of the misconceptions about the project.
Myth: Wine doesn't run any program well: There are currently 1863 applications with a Platinum rating (applications which install and run flawlessly on an out-of-the-box Wine installation) in Wine's Application Database (AppDB). Additional applications are receiving a Platinum rating at a rapid rate. Popular Windows applications such as Adobe Photoshop CS3, World of Warcraft and Microsoft Office 2007 all run under Wine.
Myth: Wine requires native Direct3D support: Wine implements the Direct3D libraries already. Direct3D 9 and earlier has been implemented for the most part. There are of course implementation bugs, but those are being worked on. The Direct3D runtime is a slow work in progress, and so may be missing some features. Direct3D 10 is unimplemented, but the core infrastructure is in place and future implementation is in the planning stages. Native Direct3D should not be used in Wine, except for the DirectX runtime library (d3dx9_*.dll), to work around missing features in Wine.
Myth: Wine requires native Internet Explorer 6: Wine comes with its own version of Internet Explorer based on Mozilla's Gecko layout engine for applications that use IE for rendering. See the Wine Gecko project for details. There is a ton of work being put into this area of Wine since it covers such a large area of code. As a result, many applications depending on Internet Explorer rendering may not run well. For those applications, using native Internet Explorer serves as a workaround. This is neither required nor recommended because Internet Explorer's license does not allow people without a Windows license to use it.
Myth: Wine is only for Linux: Wine should run on any POSIX system that has kernel threading. However, since most Wine developers are using some version of Linux, these other operating systems don't enjoy the same level of support or compatibility. Wine currently builds and runs applications on Linux, Mac OS X, FreeBSD, Solaris and OpenSolaris. Work is also being done to get Wine to work on NetBSD and OpenBSD, the effort is progressing well.
Myth: Wine is only 32-bit capable: This is partially true, but the situation is changing. Wine has the capability of running 64 bit applications, (see this December, 2008 thread), but it is not yet enabled by default. A ton of work is being put into making the internals of Wine 64 bit compatible. Checking the Wine commit log, one can see frequent additions of patches aimed at 64 bit Wine. Running 64-bit Wine currently requires the use of a special GCC compiler from SVN to compile, so it's mostly for developers at this point. It is worth pointing out though that about two thirds of the internal Wine conformance tests already pass.
This is, of course, different from running Wine as a 32-bit application on 64-bit hardware. Doing so works fine as long as your operating system has the 32-bit compatibility libraries installed. Wine is commonly used for playing games on 64-bit Linux distributions. In fact, most packagers already build 32-bit binaries for 64-bit operating systems.
Myth: Wine stole code from Microsoft! It's illegal to use! Wine is a clean room implementation of the Microsoft Windows API. Wine developers have never used leaked Windows source code or disassembled its output. The implementation is made and tested using a suite of conformance tests, ensuring that Wine has the same behavior as Windows. The conformance tests are built daily and tested on various versions of Windows and Wine. Results can be seen on the Wine Test Runs page.
Wine is a very complex piece of software that has come a long way in the past 15 years of development. Releasing its first stable version (1.0) this past year is a testament to the complexity and size of this program that took thousands of hours of development to implement what Microsoft did with many times the resources. While Wine does not yet have perfect compatibility with all Microsoft Windows applications, the Wine team is working hard to change this. Wine is a very mature, fast-moving and complex piece of software. There's no better time than now to try Wine. Binaries and source code are available here.
Audio ProjectsI released ALSA 1.0.19 packages (except alsa-oss and alsa-python - no changes)." See the change log for more information. PulseAudio, a cross-platform sound server, has been announced. This release includes some new capabilities and many bug fixes, see the Change Log for more information.
Database Softwarebuzhug is a fast, pure-Python database engine, with a syntax based on list comprehensions for queries instead of SQL The new version 1.4 adds the boolean type for fields, and the capacity to define a default value for each field on base creation". announced. "This is the first release candidate of the Firebird version 2.1.2 patch release. It is a BETA whose purpose is for FIELD TESTING. It is recommended that you test it before deploying it into production." A new algorithm that uses both index access to the joined table and a join buffer has been implemented. It's called Batched Key Access (BKA) Join algorithm. The algorithm supports inner join, outer join and semi-join operations, including nested outer joins and nested semi-joins. Block Nested Loops Join algorithm previously used only for inner joins has been amended and now can be employed for outer join and semi-join operations, including nested nested outer joins and nested semi-joins." announced. "Changes associated with this release include the following: * Fix a cache coherency problem that could lead to database corruption." In this release localization has been added. I'd be very pleased if someone would like to contribute localization file for any language (but italian)."
Interoperabilityannounced. "This is the latest bug fix release for Samba 3.0 and is the version recommended for all production Samba servers running this release series."
Web Site DevelopmentApache Jackrabbit is a fully conforming implementation of the Content Repository for Java Technology API (JCR). A content repository is a hierarchical content store with support for structured and unstructured content, full text search, versioning, transactions, observation, and more." Apache-SSL has been announced. "For some reason I switched on renegotiation, which broke things. For now, switched back off."
Miscellaneousannounced. "OpenSIPS is an GPL implementation of a multi-functionality SIP Server that targets to deliver a high-level technical solution (performance, security and quality) to be used in professional SIP server platforms. After another month from 1.4.3 release, OpenSIPS improves itself with a new minor release, 1.4.4. Thanks to hard testing and fixing of a several people, new issues (critical and minor) were fixed on the OpenSIPS 1.4 branch. It is highly recommended to upgrade to this release, as it provides important stability improvements".
Data Visualizationannounced. "PLplot is a cross-platform, scientific graphics plotting library." announced. In addition to bug fixes, this release adds: "many small updates to the POD documents. improved win32 source. OSX compilation fixes".
Desktop EnvironmentsThis is the third update to GNOME 2.24. It contains many fixes for important bugs that directly affect our users, documentation updates and also a large number of updated translations. Many thanks to all the contributors who worked hard on delivering those changes in time."
Gamesannounced. "FreeCol is an open version of Colonization. It is a Civilization-like game in which the player has to conquer the new world. Version 0.8.0 of FreeCol, a turnbased strategy game, has now been released. The largest change introduced by this release is the ability to define gameplay mechanics using XML-files. You can easily change the rules you don't like or create a different game similar to FreeCol."
Interoperabilityannounced. Changes include: "Freedesktop.org-compliant startup notifications. Many fixes for 64-bit application support. Improved graphics support in Internet Explorer. Various Richedit improvements. Better certificate manager dialog. Various bug fixes."
Music Applicationslv2dynparam is LV2 extension for dynamic parameters. The extension consists of a header describing the extension interface and libraries, one for plugins and one for hosts, to expose functionality in more usable, from programmer point of view, interface. Changes since version 1: * host library: API is refactored, the new API is NOT compatible with the version 1 API * host library: support for dynparam automation * host library: support for dynparam parameter save/restore". This version features better envelope generators with exponential behaviour and compiles now with newer versions of GCC. Minicomputer is a standalone Linux softwaresynthesizer for creating experimental electronic sounds as its often used in but not limited to Industrial music, IDM, EBM, Glitch, sound design and minimal electronic." Yes, it finally happened, I got off by backside and fixed the accent to work properly." In brief, QJackMMC is a Qt based program that can connect to a device or program that emits Midi Machine Code (MMC) and allow it to drive JACK transport, which in turn can control other programs. JackCtlMMC is a slightly simpler command-line version of QJackMMC. You might need such a tool if you have hard-disk recorders (HDRs) or other external MIDI compliant devices that are capable of sending out MMC to keep other devices in sync. You might have a multi-track recorder and you want to be able to start, stop, or fast-forward JACK-based programs such as Rosegarden, Hydrogen, and Ardour." zynjacku is JACK based, GTK (2.x) host for LV2 synths. It has one JACK MIDI input port (routed to all hosted synths) and one (two for stereo synths) JACK audio output port per plugin. Such design provides multi-timbral sound by running several synth plugins."
Office Suitesannounced the release of KOffice 2.0 Beta 5. "Moving towards the 2.0 release with almost monthly beta releases, the KOffice team has once more honoured its promise to bring out beta releases of KOffice until the time is right for a release candidate. So today we bring you this beta with many, many improvements across the board. Incremental as it is, this beta is an important step towards a final release."
Video Applicationsannounced. The software is an: "Advanced shell script for encoding DVDs or video files to the H.264 format using the encoding utility MEncoder from MPlayer. Supports all the useful options an end-user would need to make a successful encode. The script is a CLI front end to MEncoder." This release adds a new capability and bug fixes.
MiscellaneousPyAMF is a lightweight library that allows Flash and Python applications to communicate via Adobe's ActionScript Message Format."
Languages and Tools
CThe GCC 4.3 branch is now frozen in preparation for a release candidate for the GCC 4.3.3 release. When the branch is unfrozen again I will send a message stating so. All checkins to the branch require approval by a release manager now."
PythonThe History of Python. "Later blog entries will dive into the gory details of Python's history. However, before I do that, I would like to elaborate on the philosophical guidelines that helped me make decisions while designing and implementing Python. First of all, Python was originally conceived as a one-person skunkworks project there was no official budget, and I wanted results quickly, in part so that I could convince management to support the project (in which I was fairly successful). This led to a number of timesaving rules..." Evoque Templating -- the generic full-featured text template engine with state-of-the-art features such as: exclusively unicode, dynamic overlays, format-extensible automatic quoting, in-process sandbox, caching, small (992 SLOC), simple, fast, etc." Pycairo 1.8.0 resulted in crashes for some applications using threads. So upgrading to 1.8.2 is recommended for threaded applications."
XMLannounced. "JCAM Engine with XML Editor / Validator: XML Processor & Template Editor. Java implement of OASIS CAM Standard of XML validation & assembly + visual Eclipse editor. Includes XSLT tools for ingesting XSD Schema, creating HTML docs, XSD subset, XML test case examples + dictionary(uses Saxon XSLT) A new version of the editor has been released, which now includes the correct Java Run-time Environment, to allow it to work. this does increase download time, but significantly reduces installation problems." XSLTdoc, a Javadoc-like tool for all versions of XSLT, has been announced. Changes include: "Changed output format from XML to XHTML. Changed output encoding to UTF-8. Fixed a bug where xd:detail was not printed. xml:xd inline tag supports an href attribute which allows to include external XML markup. Enabled the Forum on sourceforge. "
Miscellaneousannounced. "SWIG is a software development tool that reads C/C++ header files and generates wrapper code to make C/C++ code accessible from other languages including Perl, Python, Tcl, Ruby, PHP, Java, Ocaml, Lua, C#, Modula-3, R, Octave and Scheme & Lisp variants. Apart from the usual round of bug fixes and minor new features there are a couple of big new features in this release."
Page editor: Forrest Cook
Next page: Linux in the news>>
Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds