rpms/xorg-x11-server/F-12 xserver-1.7.1-libcrypto.patch, NONE, 1.1 xserver-1.7.1-sigaction.patch, NONE, 1.1 xorg-x11-server.spec, 1.503, 1.504

Adam Jackson ajax at fedoraproject.org
Mon Nov 16 23:28:33 UTC 2009


Author: ajax

Update of /cvs/pkgs/rpms/xorg-x11-server/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv10977

Modified Files:
	xorg-x11-server.spec 
Added Files:
	xserver-1.7.1-libcrypto.patch xserver-1.7.1-sigaction.patch 
Log Message:
* Mon Nov 16 2009 Adam Jackson <ajax at redhat.com> 1.7.1-8
- xserver-1.7.1-libcrypto.patch: Avoid linking against libssl, which is huge
  and drags in dependent libs we don't care about.
- xserver-1.7.1-sigaction.patch: Microoptimization to SIGIO handling.


xserver-1.7.1-libcrypto.patch:
 configure.ac |    7 -------
 1 file changed, 7 deletions(-)

--- NEW FILE xserver-1.7.1-libcrypto.patch ---
>From 8875112f5c57ec5d575e717c5638fbc919145efb Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax at redhat.com>
Date: Mon, 16 Nov 2009 18:01:26 -0500
Subject: [PATCH] configure: Only link against libcrypto

openssl.pc will link you against libssl, which we don't need, and which
brings in another seven libraries we also don't need.  This is still
bogus, we're really only trying to get a SHA1 routine, we could link it
statically and be even better off.
---
 configure.ac |    6 ------
 1 files changed, 0 insertions(+), 6 deletions(-)

diff --git a/configure.ac b/configure.ac
index f69f97e..254d33d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1297,14 +1297,8 @@ if test "x$SHA1_LIB" = "x" ; then
 fi
 
 if test "x$SHA1_LIB" = "x" ; then
-  PKG_CHECK_EXISTS([OPENSSL], [openssl], [HAVE_OPENSSL_PKC=yes],
-                    [HAVE_OPENSSL_PKC=no])
-  if test "x$HAVE_OPENSSL_PKC" = xyes; then
-    REQUIRED_LIBS="$REQUIRED_LIBS openssl"
-  else
     AC_CHECK_LIB([crypto], [SHA1_Init], [SHA1_LIB="-lcrypto"],
                  [AC_MSG_ERROR([OpenSSL must be installed in order to build the X server.])])
-  fi
 fi
 
 PKG_CHECK_MODULES([XSERVERCFLAGS], [$REQUIRED_MODULES $REQUIRED_LIBS])
-- 
1.6.5.2


xserver-1.7.1-sigaction.patch:
 sigio.c |   41 ++++++++++++++++++++++++++++++++++-------
 1 file changed, 34 insertions(+), 7 deletions(-)

--- NEW FILE xserver-1.7.1-sigaction.patch ---
>From 645de09fc84482a55b5234312027efd007e53d8c Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax at redhat.com>
Date: Sat, 7 Nov 2009 15:29:05 -0500
Subject: [PATCH] xfree86: Use SA_SIGINFO if available for SIGIO handlers

siginfo_t gives us the file descriptor that raised the signal directly,
so we don't need to select() for it.  This gets evdev event processing
down to exactly one syscall in the common case.

Signed-off-by: Adam Jackson <ajax at redhat.com>
---
 hw/xfree86/os-support/shared/sigio.c |   40 ++++++++++++++++++++++++++++-----
 1 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/hw/xfree86/os-support/shared/sigio.c b/hw/xfree86/os-support/shared/sigio.c
index aed5654..4f1ec55 100644
--- a/hw/xfree86/os-support/shared/sigio.c
+++ b/hw/xfree86/os-support/shared/sigio.c
@@ -95,12 +95,11 @@ static int		xf86SigIOMax;
 static int		xf86SigIOMaxFd;
 static fd_set		xf86SigIOMask;
 
-/*
- * SIGIO gives no way of discovering which fd signalled, select
- * to discover
- */
+#ifndef SA_SIGINFO
+
+/* plain signals have no way of discovering which fd signalled. */
 static void
-xf86SIGIO (int sig)
+sigio_handler (int sig)
 {
     int	    i;
     fd_set  ready;
@@ -126,6 +125,27 @@ xf86SIGIO (int sig)
     errno = save_errno;
 }
 
+#else /* have SA_SIGINFO */
+
+/* siginfo passes the triggering fd in, no need to select() */
+static void
+sigio_sigaction(int sig, siginfo_t *si, void *ctx)
+{
+    int i;
+    int save_errno = errno;
+
+    for (i = 0; i < MAX_FUNCS; i++) {
+        if (xf86SigIOFuncs[i].f && xf86SigIOFuncs[i].fd == si->si_fd) {
+            (*xf86SigIOFuncs[i].f)(si->si_fd, xf86SigIOFuncs[i].closure);
+            break;
+        }
+    }
+
+    errno = save_errno;
+}
+
+#endif
+
 static int
 xf86IsPipe (int fd)
 {
@@ -164,6 +184,9 @@ xf86InstallSIGIOHandler(int fd, void (*f)(int, void *), void *closure)
 		    xf86Msg(X_WARNING, "fcntl(%d, F_SETOWN): %s\n",
 			    fd, strerror(errno));
 		} else {
+#ifdef SA_SIGINFO
+                    fcntl(fd, F_SETSIG, SIGIO);
+#endif
 		    installed = TRUE;
 		}
 	    }
@@ -184,8 +207,13 @@ xf86InstallSIGIOHandler(int fd, void (*f)(int, void *), void *closure)
 	    }
 	    sigemptyset(&sa.sa_mask);
 	    sigaddset(&sa.sa_mask, SIGIO);
+#ifndef SA_SIGINFO
 	    sa.sa_flags   = 0;
-	    sa.sa_handler = xf86SIGIO;
+	    sa.sa_handler = sigio_handler;
+#else
+            sa.sa_flags     = SA_SIGINFO;
+            sa.sa_sigaction = sigio_sigaction;
+#endif
 	    sigaction(SIGIO, &sa, &osa);
 	    xf86SigIOFuncs[i].fd = fd;
 	    xf86SigIOFuncs[i].closure = closure;
-- 
1.6.5.rc2



Index: xorg-x11-server.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-server/F-12/xorg-x11-server.spec,v
retrieving revision 1.503
retrieving revision 1.504
diff -u -p -r1.503 -r1.504
--- xorg-x11-server.spec	6 Nov 2009 22:35:21 -0000	1.503
+++ xorg-x11-server.spec	16 Nov 2009 23:28:32 -0000	1.504
@@ -19,7 +19,7 @@
 Summary:   X.Org X11 X server
 Name:      xorg-x11-server
 Version:   1.7.1
-Release:   7%{dist}
+Release:   8%{dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X
@@ -79,6 +79,8 @@ Patch6048: xserver-1.7.0-exa-fix-mixed.p
 Patch6049: xserver-1.7.1-multilib.patch
 Patch6050: xserver-1.7.1-window-pictures.patch
 Patch6051: xserver-1.7.1-gamma-kdm-fix.patch
+Patch6052: xserver-1.7.1-libcrypto.patch
+Patch6053: xserver-1.7.1-sigaction.patch
 
 %define moduledir	%{_libdir}/xorg/modules
 %define drimoduledir	%{_libdir}/dri
@@ -118,7 +120,6 @@ BuildRequires: libXi-devel libXpm-devel 
 # Broken, this is global, should be Xephyr-only
 BuildRequires: libXv-devel
 
-# openssl? really?
 BuildRequires: pixman-devel >= 0.15.14
 BuildRequires: libpciaccess-devel >= 0.10.6-1 openssl-devel byacc flex
 BuildRequires: mesa-libGL-devel >= 7.6-0.6
@@ -507,6 +508,11 @@ rm -rf $RPM_BUILD_ROOT
 %{xserver_source_dir}
 
 %changelog
+* Mon Nov 16 2009 Adam Jackson <ajax at redhat.com> 1.7.1-8
+- xserver-1.7.1-libcrypto.patch: Avoid linking against libssl, which is huge
+  and drags in dependent libs we don't care about.
+- xserver-1.7.1-sigaction.patch: Microoptimization to SIGIO handling.
+
 * Fri Nov 06 2009 Adam Jackson <ajax at redhat.com>
 - Fix the previous changelog entry to name the right patch
 




More information about the fedora-extras-commits mailing list