Export the Wine version string in libwine

Mike Hearn mike at navi.cx
Sat Jul 24 08:28:45 CDT 2004

OK Alexandre, I know you don't like this idea one bit. However, the
comments Paul Davis made some time ago made me sit up and listen. He

        Wine has a bit of a problem with the Mono project and our much
        smaller FST project to support VST win32/x86 plugins on
        linux. It has previously been a self-contained project that
        did not provide libraries, and whose internal API was not
        accessed by anyone or anything outside of Wine itself. It now
        is being used by (at least) 2 projects as a *library*, and it
        can either accept that role - which implies providing (at
        least) runtime version info - or reject it, which would be a
        great shame.

While Wine isn't really ready to be used as a library yet, people
*are* using it, today, to get things done. People are already doing
version checks against the date string by running "wine --version"
and scraping the output but it's unreliable and tends to only be used
at compile time. Seeing as we already export this information, it
makes sense IMHO to allow people to access it in a more convenient
fashion rather than simply turning them away.

I think the disclaimer in the patch is enough warning. The symbol is
not versioned as it's not intended to be supported after 1.0.

Is it possible to convince you on this issue?

thanks -mike

Index: libs/wine/config.c
RCS file: /home/wine/wine/libs/wine/config.c,v
retrieving revision 1.9
diff -u -p -r1.9 config.c
--- libs/wine/config.c	15 Jun 2004 20:31:06 -0000	1.9
+++ libs/wine/config.c	24 Jul 2004 13:19:27 -0000
@@ -35,6 +35,12 @@
 #include "wine/library.h"

+/* Export the wine version timestamp.
+ * This interface is unstable and may change or be removed in future versions.
+ * It should only ever be accessed via dlsym.
+ */
+const char wine_version_string[] = PACKAGE_VERSION;
 static const char server_config_dir[] = "/.wine";        /* config dir relative to $HOME */
 static const char server_root_prefix[] = "/tmp/.wine-";  /* prefix for server root dir */
 static const char server_dir_prefix[] = "/server-";      /* prefix for server dir */

More information about the wine-patches mailing list