-    if ( sscanf(WXWIN_OS_DESCRIPTION, "%.255s %d.%d", name, &major, &minor) != 3 )
+    FILE *f = popen("uname -r", "r");
+    if (f)
+    {
+        char buf[32];
+        size_t c = fread(buf, 1, sizeof(buf) - 1, f);
+        pclose(f);
+        buf[c] = '\0';
+        if ( sscanf(buf, "%d.%d", &major, &minor) != 2 )
+        {
+            // unrecognized uname string format
+            major =
+            minor = -1;
+        }
+    }
+    else