open-src/xserver/xorg/sun-loginfo.patch
author Alan Coopersmith <Alan.Coopersmith@Sun.COM>
Fri, 15 May 2009 09:36:46 -0700
changeset 705 24ca414edbff
parent 606 068c11b419c9
permissions -rw-r--r--
6826940 Xorg server 1.6.1, Mesa 7.4.1, and associated module upgrades [PSARC 2009/292] 6837131 Can't bring up dtlogin with AST2000 driver on nvx_114 Includes fix contributed by Juergen Keil for OpenSolaris Bug #8687: german keyboard layout: umlaut keys not accepted by Xvnc http://defect.opensolaris.org/bz/show_bug.cgi?id=8687

# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
# Use subject to license terms.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, and/or sell copies of the Software, and to permit persons
# to whom the Software is furnished to do so, provided that the above
# copyright notice(s) and this permission notice appear in all copies of
# the Software and that both the above copyright notice(s) and this
# permission notice appear in supporting documentation.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
# 
# Except as contained in this notice, the name of a copyright holder
# shall not be used in advertising or otherwise to promote the sale, use
# or other dealings in this Software without prior written authorization
# of the copyright holder.

diff -urp -x '*~' -x '*.orig' hw/xfree86/common/xf86Init.c hw/xfree86/common/xf86Init.c
--- hw/xfree86/common/xf86Init.c	2009-04-14 10:14:57.000000000 -0700
+++ hw/xfree86/common/xf86Init.c	2009-05-08 17:43:47.964208000 -0700
@@ -96,6 +96,7 @@
 static Bool probe_devices_from_device_sections(DriverPtr drvp);
 static Bool add_matching_devices_to_configure_list(DriverPtr drvp);
 static Bool check_for_matching_devices(DriverPtr drvp);
+static void sunLogInfo(void);
 
 #ifdef XF86PM
 void (*xf86OSPMClose)(void) = NULL;
@@ -134,7 +135,7 @@ static Bool formatsDone = FALSE;
 static void
 xf86PrintBanner(void)
 {
-#if PRE_RELEASE
+#if 0
   ErrorF("\n"
     "This is a pre-release version of the X server from " XVENDORNAME ".\n"
     "It is not supported in any way.\n"
@@ -234,6 +235,7 @@ xf86PrintBanner(void)
 #if defined(BUILDERSTRING)
   ErrorF("%s \n",BUILDERSTRING);
 #endif
+  sunLogInfo();
   ErrorF("\tBefore reporting problems, check "__VENDORDWEBSUPPORT__"\n"
 	 "\tto make sure that you have the latest version.\n");
 }
@@ -2014,3 +2016,73 @@ xf86GetBppFromDepth(ScrnInfoPtr pScrn, i
     else
 	return 0;
 }
+/* Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, and/or sell copies of the Software, and to permit persons
+ * to whom the Software is furnished to do so, provided that the above
+ * copyright notice(s) and this permission notice appear in all copies of
+ * the Software and that both the above copyright notice(s) and this
+ * permission notice appear in supporting documentation.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+ * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ * 
+ * Except as contained in this notice, the name of a copyright holder
+ * shall not be used in advertising or otherwise to promote the sale, use
+ * or other dealings in this Software without prior written authorization
+ * of the copyright holder.
+ */
+
+/*
+ * Custom hack for Solaris to report pkg/patch info - should not be put into
+ * X.Org Community release since they don't use our packages/patches, and
+ * since it cheats a bit to get the information quickly.   This could easily
+ * break because we're using private/undocumented interfaces which may change
+ * at any time, but since it's just displaying the information for human
+ * consumption by people reading the logfiles, and we don't depend on it in
+ * any way, we can live with that.
+ */
+
+static void
+sunLogInfo(void)
+{
+    char pibuf[16384]; /* Should be enough for even the longest patch list */
+    const char *pkgs[] = { "SUNWxorg-server", "SUNWxorg-graphics-ddx", "SUNWxorg-mesa", NULL };
+    const char *p;
+    int i;
+    FILE *pkginfo;
+
+#ifdef _LP64
+    ErrorF("\nSolaris ABI: 64-bit\n");
+#else    
+    ErrorF("\nSolaris ABI: 32-bit\n");
+#endif
+    
+    for (i = 0; pkgs[i] != NULL; i++) {
+	p = pkgs[i];
+	snprintf(pibuf, sizeof(pibuf), "/var/sadm/pkg/%s/pkginfo", p);
+	pkginfo = fopen(pibuf, "r");
+
+	if (pkginfo != NULL) {
+	    while(fgets(pibuf, sizeof(pibuf), pkginfo) != NULL) {
+		if (strncmp(pibuf, "VERSION=", 8) == 0) {
+		    ErrorF("%s package version: %s", p, pibuf+8);
+		} else if (strncmp(pibuf, "PATCHLIST=", 10) == 0) {
+		    ErrorF("%s patches applied: %s", p, pibuf+10);
+		}
+	    }
+	    fclose(pkginfo);
+	}
+    }
+}
diff -urp -x '*~' -x '*.orig' hw/xfree86/loader/loadmod.c hw/xfree86/loader/loadmod.c
--- hw/xfree86/loader/loadmod.c	2009-05-08 17:43:39.413495000 -0700
+++ hw/xfree86/loader/loadmod.c	2009-05-08 17:43:47.987132000 -0700
@@ -1220,6 +1220,15 @@ LoaderErrorMsg(const char *name, const c
     default:
 	msg = "unknown error";
     }
+#ifdef SUNSOFT
+    /* We don't ship fbdev in Solaris, xtsol is only required on Trusted (TX)
+       systems, so it's not an error if either of them are not found */
+    if ( (errmaj == LDR_NOENT) &&
+	 ((strcmp(modname, "xtsol") == 0) || (strcmp(modname, "fbdev") == 0)))
+    {
+	type = X_INFO;
+    }
+#endif    
     if (name)
 	xf86Msg(type, "%s: Failed to load module \"%s\" (%s, %d)\n",
 		name, modname, msg, errmin);