From 1edb41d659a2a24140aab887435e12a6c1d9401ccc48580f11ed19c95fc67179 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Wed, 3 Oct 2007 15:06:04 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xorg-x11-server?expand=0&rev=47 --- ia64Pci.h | 46 ++++++++++++++++++++++++++++ p_pci-off-by-one.diff.ia64 | 20 ++++++------ xorg-x11-server.changes | 19 ++++++++++++ xorg-x11-server.spec | 17 +++++++++- xserver-1.3.0-xkb-and-loathing.patch | 36 ++++++++++++++++++++++ 5 files changed, 127 insertions(+), 11 deletions(-) create mode 100644 ia64Pci.h create mode 100644 xserver-1.3.0-xkb-and-loathing.patch diff --git a/ia64Pci.h b/ia64Pci.h new file mode 100644 index 0000000..e71d422 --- /dev/null +++ b/ia64Pci.h @@ -0,0 +1,46 @@ +/* + * Copyright 2004, Egbert Eich + * + * 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, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 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. IN NO EVENT SHALL + * EGBERT EICH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- + * NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of Egbert Eich shall not + * be used in advertising or otherwise to promote the sale, use or other deal- + *ings in this Software without prior written authorization from Egbert Eich. + * + */ +#ifdef HAVE_XORG_CONFIG_H +#include +#endif + +#ifndef _IA64_PCI_H +# define _IA64_PCI_H + +#include "Pci.h" + +typedef enum { + NONE_CHIPSET, + I460GX_CHIPSET, + E8870_CHIPSET, + ZX1_CHIPSET, + ALTIX_CHIPSET +} IA64Chipset; + +# ifdef OS_PROBE_PCI_CHIPSET +extern IA64Chipset OS_PROBE_PCI_CHIPSET(scanpciWrapperOpt flags); +# endif +#endif diff --git a/p_pci-off-by-one.diff.ia64 b/p_pci-off-by-one.diff.ia64 index b041e20..2808c9b 100644 --- a/p_pci-off-by-one.diff.ia64 +++ b/p_pci-off-by-one.diff.ia64 @@ -1,7 +1,7 @@ ---- hw/xfree86/os-support/bus/linuxPci.c -+++ hw/xfree86/os-support/bus/linuxPci.c -@@ -550,7 +550,7 @@ xf86GetPciDomain(PCITAG Tag) - return result; +--- hw/xfree86/os-support/bus/linuxPci.c.orig 2007-08-23 21:04:53.000000000 +0200 ++++ hw/xfree86/os-support/bus/linuxPci.c 2007-10-03 13:31:32.647167750 +0200 +@@ -547,7 +547,7 @@ xf86GetPciDomain(PCITAG Tag) + return result + 1; if (!pPCI || pPCI->fakeDevice) - return 1; /* Domain 0 is reserved */ @@ -9,7 +9,7 @@ if ((fd = linuxPciOpenFile(pPCI ? pPCI->tag : 0,FALSE)) < 0) return 0; -@@ -558,7 +558,7 @@ xf86GetPciDomain(PCITAG Tag) +@@ -555,7 +555,7 @@ xf86GetPciDomain(PCITAG Tag) if ((result = ioctl(fd, PCIIOC_CONTROLLER, 0)) < 0) return 0; @@ -18,7 +18,7 @@ } static pointer -@@ -628,7 +628,7 @@ linuxMapPci(int ScreenNum, int Flags, PC +@@ -626,7 +626,7 @@ linuxMapPci(int ScreenNum, int Flags, PC return NULL; } @@ -27,7 +27,7 @@ static pointer DomainMmappedIO[MAX_DOMAINS]; static int -@@ -649,11 +649,10 @@ linuxOpenLegacy(PCITAG Tag, char *name) +@@ -647,11 +647,10 @@ linuxOpenLegacy(PCITAG Tag, char *name) domain = xf86GetPciDomain(Tag); bus = PCI_BUS_NO_DOMAIN(PCI_BUS_FROM_TAG(Tag)); @@ -41,15 +41,15 @@ fd = open(path, O_RDWR); if (fd >= 0) { xfree(path); -@@ -685,7 +684,6 @@ _X_EXPORT pointer +@@ -683,7 +682,6 @@ _X_EXPORT pointer xf86MapDomainMemory(int ScreenNum, int Flags, PCITAG Tag, ADDRESS Base, unsigned long Size) { - int domain = xf86GetPciDomain(Tag); - int fd; + int fd = -1; pointer addr; -@@ -733,7 +731,7 @@ xf86MapDomainIO(int ScreenNum, int Flags +@@ -731,7 +729,7 @@ xf86MapDomainIO(int ScreenNum, int Flags int domain = xf86GetPciDomain(Tag); int fd; diff --git a/xorg-x11-server.changes b/xorg-x11-server.changes index 7b8c61a..18d1010 100644 --- a/xorg-x11-server.changes +++ b/xorg-x11-server.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Wed Oct 3 14:55:42 CEST 2007 - sndirsch@suse.de + +- xserver-1.3.0-xkb-and-loathing.patch + * Ignore (not just block) SIGALRM around calls to Popen()/Pclose(). + Fixes a hang in openoffice when opening menus. (Bug #245711) + +------------------------------------------------------------------- +Wed Oct 3 14:12:03 CEST 2007 - sndirsch@suse.de + +- added missing ia64Pci.h; required for IA64 + +------------------------------------------------------------------- +Wed Oct 3 13:41:42 CEST 2007 - sndirsch@suse.de + +- recreated p_pci-off-by-one.diff.ia64; the default fuzz factor of + patch (2) resulted in a hunk applied to the wrong function and + therefore broke the build :-( + ------------------------------------------------------------------- Sat Sep 29 00:51:38 CEST 2007 - sndirsch@suse.de diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index f116017..1c8602d 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -21,7 +21,7 @@ BuildRequires: libjpeg-devel Url: http://xorg.freedesktop.org/ %define EXPERIMENTAL 0 Version: 7.3 -Release: 1 +Release: 2 License: X11/MIT BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: System/X11/Servers/XF86_4 @@ -46,6 +46,7 @@ Source6: 0018-vnc-support.txt.mbox %endif Source7: xorg-docs-1.4.tar.bz2 Source8: xorg.conf.man-070818.tar +Source9: ia64Pci.h Patch: 64bit.diff Patch1: fpic.diff Patch2: p_default-module-path.diff @@ -86,6 +87,7 @@ Patch72: randr12-8d230319040f0a7f72231da2bf5ec97dc3612e21.diff Patch77: fbdevhw.diff Patch79: edit_data_sanity_check.diff Patch80: pixman.diff +Patch81: xserver-1.3.0-xkb-and-loathing.patch Patch334: p_pci-domain.diff %description @@ -141,6 +143,8 @@ An X Window System server for Virtual Network Computing (VNC). %endif %prep %setup -q -n xorg-server-%{dirsuffix} -b1 -a4 -a7 -a8 +test -s hw/xfree86/os-support/shared/ia64Pci.h || \ + cp $RPM_SOURCE_DIR/ia64Pci.h hw/xfree86/os-support/shared/ia64Pci.h # make legal department happy (Bug #204110) test -f ../Mesa-7.0.1/src/mesa/drivers/directfb/idirectfbgl_mesa.c && exit 1 test -f ../Mesa-7.0.1/progs/ggi/asc-view.c && exit 1 @@ -199,6 +203,7 @@ popd %patch77 %patch79 -p1 %patch80 +%patch81 -p1 %build pushd xorg-docs-* @@ -529,6 +534,16 @@ exit 0 /usr/bin/Xvnc %endif %changelog +* Wed Oct 03 2007 - sndirsch@suse.de +- xserver-1.3.0-xkb-and-loathing.patch + * Ignore (not just block) SIGALRM around calls to Popen()/Pclose(). + Fixes a hang in openoffice when opening menus. (Bug #245711) +* Wed Oct 03 2007 - sndirsch@suse.de +- added missing ia64Pci.h; required for IA64 +* Wed Oct 03 2007 - sndirsch@suse.de +- recreated p_pci-off-by-one.diff.ia64; the default fuzz factor of + patch (2) resulted in a hunk applied to the wrong function and + therefore broke the build :-( * Sat Sep 29 2007 - sndirsch@suse.de - xorg-server 1.4 * Welcome to X.Org X Server 1.4, now with hotplugging input to go diff --git a/xserver-1.3.0-xkb-and-loathing.patch b/xserver-1.3.0-xkb-and-loathing.patch new file mode 100644 index 0000000..0f195d7 --- /dev/null +++ b/xserver-1.3.0-xkb-and-loathing.patch @@ -0,0 +1,36 @@ +--- xorg-server-1.3.0.0/os/utils.c.jx 2007-04-25 13:28:05.000000000 -0400 ++++ xorg-server-1.3.0.0/os/utils.c 2007-04-30 14:33:04.000000000 -0400 +@@ -1725,6 +1725,8 @@ + int pid; + } *pidlist; + ++static sighandler_t old_alarm = NULL; /* XXX horrible awful hack */ ++ + pointer + Popen(char *command, char *type) + { +@@ -1746,11 +1748,15 @@ + return NULL; + } + ++ /* Ignore the smart scheduler while this is going on */ ++ old_alarm = signal(SIGALRM, SIG_IGN); ++ + switch (pid = fork()) { + case -1: /* error */ + close(pdes[0]); + close(pdes[1]); + xfree(cur); ++ signal(SIGALRM, old_alarm); + return NULL; + case 0: /* child */ + if (setgid(getgid()) == -1) +@@ -1926,6 +1932,8 @@ + /* allow EINTR again */ + OsReleaseSignals (); + ++ signal(SIGALRM, old_alarm); ++ + return pid == -1 ? -1 : pstat; + } +