* Mon Apr 09 2007 Adam Jackson <ajax@redhat.com> 1.2.99.905-2
- xserver-1.3.0-pci-bus-count.patch: Allocate the PCI bus array dynamically, so as not to run off the end of it. - xserver-1.3.0-mmap-failure-check.patch: Check for failure when mmap'ing bus memory. (#234073) - xserver-1.3.0-rom-search.patch: Look for the sysfs ROM file in the (flat) /sys/bus/pci/devices tree, instead of the (bus-topological) /sys/devices, so we don't fail to find ROMs merely because they're behind a bridge. - xserver-1.3.0-no-pseudocolor-composite.patch: Refuse to initialize Composite when Render is missing or when the root window is using a pseudocolor visual. (#217388) - xserver-1.3.0-xnest-exposures.patch: Fix Motif app redraw in Xnest. (#229350)
This commit is contained in:
parent
a61fa114cb
commit
115cc5d8ad
@ -9,7 +9,7 @@
|
||||
Summary: X.Org X11 X server
|
||||
Name: xorg-x11-server
|
||||
Version: 1.2.99.905
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
URL: http://www.x.org
|
||||
License: MIT/X11
|
||||
Group: User Interface/X
|
||||
@ -28,7 +28,7 @@ Patch11: xorg-x11-server-1.1.1-vt-activate-is-a-terrible-api.patch
|
||||
Patch12: xorg-x11-server-1.1.1-graphics-expose.patch
|
||||
Patch15: xorg-x11-server-1.1.1-automake-1.10-fixes.patch
|
||||
Patch18: xorg-x11-server-1.1.1-glcore-visual-matching.patch
|
||||
Patch19: xorg-x11-server-1.2.99-unbreak-domain.patch
|
||||
Patch19: xserver-1.3.0-xnest-exposures.patch
|
||||
|
||||
# OpenGL compositing manager feature/optimization patches.
|
||||
Patch100: xorg-x11-server-1.1.0-no-move-damage.patch
|
||||
@ -36,6 +36,7 @@ Patch101: xorg-x11-server-1.1.0-dont-backfill-bg-none.patch
|
||||
Patch105: xorg-x11-server-1.2.0-enable-composite.patch
|
||||
Patch106: xorg-x11-server-1.1.1-no-composite-in-xnest.patch
|
||||
Patch107: xorg-x11-server-1.1.1-offscreen-pixmaps.patch
|
||||
Patch108: xserver-1.3.0-no-pseudocolor-composite.patch
|
||||
|
||||
# Red Hat specific tweaking, not intended for upstream
|
||||
# XXX move these to the end of the list
|
||||
@ -55,6 +56,12 @@ Patch2003: xserver-1.2.0-vfprintf.patch
|
||||
Patch2004: xserver-1.2.0-honor-displaysize.patch
|
||||
Patch2005: xserver-1.2.99.901-xephyr-crash-at-exit.patch
|
||||
|
||||
# assorted PCI layer shenanigans. oh the pain.
|
||||
Patch2500: xorg-x11-server-1.2.99-unbreak-domain.patch
|
||||
Patch2501: xserver-1.3.0-pci-bus-count.patch
|
||||
Patch2502: xserver-1.3.0-mmap-failure-check.patch
|
||||
Patch2503: xserver-1.3.0-rom-search.patch
|
||||
|
||||
%define moduledir %{_libdir}/xorg/modules
|
||||
%define drimoduledir %{_libdir}/dri
|
||||
%define sdkdir %{_includedir}/xorg
|
||||
@ -253,13 +260,14 @@ Xserver source code needed to build VNC server (Xvnc)
|
||||
%patch12 -p1 -b .graphics-expose
|
||||
%patch15 -p1 -b .automake-1.10
|
||||
%patch18 -p1 -b .glcore-visual
|
||||
%patch19 -p1 -b .unbreak-domains
|
||||
%patch19 -p1 -b .xnest-expose
|
||||
|
||||
%patch100 -p0 -b .no-move-damage
|
||||
%patch101 -p0 -b .dont-backfill-bg-none
|
||||
%patch105 -p1 -b .enable-composite
|
||||
%patch106 -p1 -b .no-xnest-composite
|
||||
%patch107 -p1 -b .offscreen-pixmaps
|
||||
%patch108 -p1 -b .composite-paranoia
|
||||
|
||||
%patch1001 -p1 -b .Red-Hat-extramodes
|
||||
%patch1002 -p1 -b .xephyr
|
||||
@ -277,9 +285,13 @@ Xserver source code needed to build VNC server (Xvnc)
|
||||
%patch2004 -p1 -b .displaysize
|
||||
%patch2005 -p1 -b .xephyr-crash
|
||||
|
||||
%patch2500 -p1 -b .unbreak-domains
|
||||
%patch2501 -p1 -b .pci-bus-count
|
||||
%patch2502 -p1 -b .mmap-check
|
||||
%patch2503 -p1 -b .rom-search
|
||||
|
||||
%build
|
||||
|
||||
# --disable-dependency-tracking ?
|
||||
# --with-rgb-path should be superfluous now ?
|
||||
# --with-pie ?
|
||||
aclocal ; automake -a ; autoconf
|
||||
@ -323,14 +335,12 @@ mkdir -p $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,input}
|
||||
|
||||
# Install the vesamodes and extramodes files to let our install/config tools
|
||||
# be able to parse the same modelist as the X server uses (rhpxl).
|
||||
{
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/xorg
|
||||
for each in vesamodes extramodes ; do
|
||||
install -m 0644 %{SOURCE100} $RPM_BUILD_ROOT%{_datadir}/xorg/$each
|
||||
cat hw/xfree86/common/$each >> $RPM_BUILD_ROOT%{_datadir}/xorg/$each
|
||||
chmod 0444 $RPM_BUILD_ROOT%{_datadir}/xorg/$each
|
||||
done
|
||||
}
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/xorg
|
||||
for each in vesamodes extramodes ; do
|
||||
install -m 0644 %{SOURCE100} $RPM_BUILD_ROOT%{_datadir}/xorg/$each
|
||||
cat hw/xfree86/common/$each >> $RPM_BUILD_ROOT%{_datadir}/xorg/$each
|
||||
chmod 0444 $RPM_BUILD_ROOT%{_datadir}/xorg/$each
|
||||
done
|
||||
%endif
|
||||
|
||||
# Make the source package
|
||||
@ -359,19 +369,18 @@ xargs tar cf - | (cd %{inst_srcdir} && tar xf -)
|
||||
rm -f $RPM_BUILD_ROOT%{_bindir}/out?
|
||||
rm -f $RPM_BUILD_ROOT%{_bindir}/pcitweak
|
||||
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/pcitweak.1*
|
||||
# Remove all libtool archives (*.la)
|
||||
find $RPM_BUILD_ROOT -type f -name '*.la' | xargs rm -f -- || :
|
||||
|
||||
%ifarch s390 s390x
|
||||
# FIXME: The following files get installed on s390/s390x and we don't
|
||||
# want some of them on s390 at all, and others should be in a -common
|
||||
# subpackage, but it's not worth doing that for 3 files right now.
|
||||
# error: Installed (but unpackaged) file(s) found:
|
||||
# /randrstr.h
|
||||
# /usr/lib/pkgconfig/xorg-server.pc
|
||||
# /usr/share/aclocal/xorg-server.m4
|
||||
# /usr/share/man/man1/Xserver.1x.gz
|
||||
# /var/lib/xkb/README.compiled
|
||||
# error: Installed (but unpackaged) file(s) found:
|
||||
# /randrstr.h
|
||||
# /usr/lib/pkgconfig/xorg-server.pc
|
||||
# /usr/share/aclocal/xorg-server.m4
|
||||
# /usr/share/man/man1/Xserver.1x.gz
|
||||
# /var/lib/xkb/README.compiled
|
||||
|
||||
rm -f $RPM_BUILD_ROOT/randrstr.h
|
||||
rm -rf $RPM_BUILD_ROOT%{_libdir}/pkgconfig
|
||||
@ -386,15 +395,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%if %{with_hw_servers}
|
||||
%pre Xorg
|
||||
{
|
||||
# Install/Upgrade section
|
||||
pushd /etc/X11
|
||||
# Migrate any pre-existing XFree86 4.x config file to xorg.conf if it
|
||||
# doesn't already exist, and rename any remaining XFree86 4.x config files
|
||||
# to have .obsoleted file extensions, to help avoid end user confusion for
|
||||
# people unaware of the config file name change between server
|
||||
# implementations, and avoid bug reports. If this turns out to confuse
|
||||
# users, I can modify it to add comments to the top of the obsoleted files
|
||||
# to point users to xorg.conf <mharris@redhat.com>
|
||||
for configfile in XF86Config XF86Config-4 ; do
|
||||
if [ -r $configfile ]; then
|
||||
if [ -r xorg.conf ]; then
|
||||
@ -404,30 +405,14 @@ rm -rf $RPM_BUILD_ROOT
|
||||
fi
|
||||
fi
|
||||
done
|
||||
# Massage pre-existing config files to work properly with X.org X11
|
||||
# - Remove xie and pex5 modules from the config files, as they are long
|
||||
# since obsolete, and not provided since XFree86 4.2.0
|
||||
# - Remove Option "XkbRules" "xfree86" to help work around upgrade problems
|
||||
# such as https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=120858
|
||||
# for configfile in xorg.conf ; do
|
||||
configfile="xorg.conf"
|
||||
OLD_MODULEPATH="/usr/X11R6/lib/modules"
|
||||
if [ -r $configfile -a -w $configfile ]; then
|
||||
# Remove module load lines from the config file for obsolete modules
|
||||
perl -p -i -e 's/^.*Load.*"(pex5|xie|xtt).*\n$"//gi' $configfile
|
||||
# Change the keyboard configuration from the deprecated "keyboard"
|
||||
# driver, to the newer "kbd" driver.
|
||||
perl -p -i -e 's/^\s*Driver(.*)"keyboard"/Driver\1"kbd"/gi' $configfile
|
||||
# Remove any Options "XkbRules" lines that may be present
|
||||
perl -p -i -e 's/^.*Option.*"XkbRules".*"(xfree86|xorg)".*\n$//gi' $configfile
|
||||
# Remove RgbPath specifications from the config file as they are
|
||||
# unnecessary, and break upgrades from monolithic to modular X.
|
||||
# Fixes bugs (#173036, 173435, 173453, 173428)
|
||||
perl -p -i -e 's#^\s*RgbPath.*$##gi' $configfile
|
||||
# If ModulePath is specified in the config file, delete it.
|
||||
perl -p -i -e 's#^\s*ModulePath.*$##gi' $configfile
|
||||
fi
|
||||
# done
|
||||
configfile="xorg.conf"
|
||||
if [ -r xorg.conf -a -w xorg.conf ]; then
|
||||
perl -p -i -e 's/^.*Load.*"(pex5|xie|xtt).*\n$"//gi' xorg.conf
|
||||
perl -p -i -e 's/^\s*Driver(.*)"keyboard"/Driver\1"kbd"/gi' xorg.conf
|
||||
perl -p -i -e 's/^.*Option.*"XkbRules".*"(xfree86|xorg)".*\n$//gi' xorg.conf
|
||||
perl -p -i -e 's#^\s*RgbPath.*$##gi' xorg.conf
|
||||
perl -p -i -e 's#^\s*ModulePath.*$##gi' xorg.conf
|
||||
fi
|
||||
popd
|
||||
} &> /dev/null || :
|
||||
%endif
|
||||
@ -562,6 +547,19 @@ rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Apr 09 2007 Adam Jackson <ajax@redhat.com> 1.2.99.905-2
|
||||
- xserver-1.3.0-pci-bus-count.patch: Allocate the PCI bus array dynamically,
|
||||
so as not to run off the end of it.
|
||||
- xserver-1.3.0-mmap-failure-check.patch: Check for failure when mmap'ing
|
||||
bus memory. (#234073)
|
||||
- xserver-1.3.0-rom-search.patch: Look for the sysfs ROM file in the (flat)
|
||||
/sys/bus/pci/devices tree, instead of the (bus-topological) /sys/devices,
|
||||
so we don't fail to find ROMs merely because they're behind a bridge.
|
||||
- xserver-1.3.0-no-pseudocolor-composite.patch: Refuse to initialize
|
||||
Composite when Render is missing or when the root window is using
|
||||
a pseudocolor visual. (#217388)
|
||||
- xserver-1.3.0-xnest-exposures.patch: Fix Motif app redraw in Xnest. (#229350)
|
||||
|
||||
* Fri Apr 06 2007 Adam Jackson <ajax@redhat.com> 1.2.99.905-1
|
||||
- xserver 1.3 RC5.
|
||||
|
||||
|
41
xserver-1.3.0-mmap-failure-check.patch
Normal file
41
xserver-1.3.0-mmap-failure-check.patch
Normal file
@ -0,0 +1,41 @@
|
||||
--- ./hw/xfree86/os-support/bus/linuxPci.c.orig 2007-03-14 09:37:44.000000000 -0600
|
||||
+++ ./hw/xfree86/os-support/bus/linuxPci.c 2007-03-14 09:41:01.000000000 -0600
|
||||
@@ -634,28 +634,28 @@
|
||||
ADDRESS Base, unsigned long Size)
|
||||
{
|
||||
int domain = xf86GetPciDomain(Tag);
|
||||
- int fd;
|
||||
+ int fd = -1;
|
||||
pointer addr;
|
||||
|
||||
/*
|
||||
* We use /proc/bus/pci on non-legacy addresses or if the Linux sysfs
|
||||
* legacy_mem interface is unavailable.
|
||||
*/
|
||||
- if (Base > 1024*1024)
|
||||
- return linuxMapPci(ScreenNum, Flags, Tag, Base, Size,
|
||||
+ if (Base >= 1024*1024)
|
||||
+ addr = linuxMapPci(ScreenNum, Flags, Tag, Base, Size,
|
||||
PCIIOC_MMAP_IS_MEM);
|
||||
-
|
||||
- if ((fd = linuxOpenLegacy(Tag, "legacy_mem")) < 0)
|
||||
- return linuxMapPci(ScreenNum, Flags, Tag, Base, Size,
|
||||
+ else if ((fd = linuxOpenLegacy(Tag, "legacy_mem")) < 0)
|
||||
+ addr = linuxMapPci(ScreenNum, Flags, Tag, Base, Size,
|
||||
PCIIOC_MMAP_IS_MEM);
|
||||
+ else
|
||||
+ addr = mmap(NULL, Size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, Base);
|
||||
|
||||
- addr = mmap(NULL, Size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, Base);
|
||||
- if (addr == MAP_FAILED) {
|
||||
- close (fd);
|
||||
+ if (fd >= 0)
|
||||
+ close(fd);
|
||||
+ if (addr == NULL || addr == MAP_FAILED) {
|
||||
perror("mmap failure");
|
||||
FatalError("xf86MapDomainMem(): mmap() failure\n");
|
||||
}
|
||||
- close(fd);
|
||||
return addr;
|
||||
}
|
||||
|
30
xserver-1.3.0-no-pseudocolor-composite.patch
Normal file
30
xserver-1.3.0-no-pseudocolor-composite.patch
Normal file
@ -0,0 +1,30 @@
|
||||
diff --git a/composite/compext.c b/composite/compext.c
|
||||
index 4c25cc7..af05b4a 100644
|
||||
--- a/composite/compext.c
|
||||
+++ b/composite/compext.c
|
||||
@@ -678,6 +678,25 @@ CompositeExtensionInit (void)
|
||||
ExtensionEntry *extEntry;
|
||||
int s;
|
||||
|
||||
+ for (s = 0; s < screenInfo.numScreens; s++) {
|
||||
+ ScreenPtr pScreen = screenInfo.screens[s];
|
||||
+ VisualPtr vis;
|
||||
+
|
||||
+ /* Composite on 8bpp pseudocolor root windows appears to fail, so
|
||||
+ * just disable it on anything pseudocolor for safety.
|
||||
+ */
|
||||
+ for (vis = pScreen->visuals; vis->vid != pScreen->rootVisual; vis++)
|
||||
+ ;
|
||||
+ if ((vis->class | DynamicClass) == PseudoColor)
|
||||
+ return;
|
||||
+
|
||||
+ /* Ensure that Render is initialized, which is required for automatic
|
||||
+ * compositing.
|
||||
+ */
|
||||
+ if (GetPictureScreenIfSet(pScreen) == NULL)
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
CompositeClientWindowType = CreateNewResourceType (FreeCompositeClientWindow);
|
||||
if (!CompositeClientWindowType)
|
||||
return;
|
40
xserver-1.3.0-pci-bus-count.patch
Normal file
40
xserver-1.3.0-pci-bus-count.patch
Normal file
@ -0,0 +1,40 @@
|
||||
--- xorg-server-1.1.1/hw/xfree86/os-support/bus/Pci.c.jx 2007-02-12 11:08:52.000000000 -0500
|
||||
+++ xorg-server-1.1.1/hw/xfree86/os-support/bus/Pci.c 2007-03-30 12:20:08.000000000 -0400
|
||||
@@ -231,14 +231,14 @@
|
||||
int pciMaxBusNum = MAX_PCI_BUSES;
|
||||
static Bool inProbe = FALSE;
|
||||
|
||||
-static pciConfigPtr pci_devp[MAX_PCI_DEVICES + 1] = {NULL, };
|
||||
+static pciConfigPtr *pci_devp = NULL;
|
||||
|
||||
static int readPciBios( PCITAG Tag, CARD8* tmp, ADDRESS hostbase,
|
||||
unsigned char * buf, int len, PciBiosType BiosType );
|
||||
|
||||
static int (*pciOSHandleBIOS)(PCITAG Tag, int basereg, unsigned char *buf, int len);
|
||||
|
||||
-int xf86MaxPciDevs = MAX_PCI_DEVICES;
|
||||
+int xf86MaxPciDevs = 0;
|
||||
|
||||
/*
|
||||
* Platform specific PCI function pointers.
|
||||
@@ -271,6 +271,11 @@
|
||||
if (pciNumBuses <= 0)
|
||||
ARCH_PCI_OS_INIT();
|
||||
#endif
|
||||
+ if (xf86MaxPciDevs == 0)
|
||||
+ xf86MaxPciDevs = MAX_PCI_DEVICES; /* XXX bogus */
|
||||
+ if (pci_devp)
|
||||
+ xfree(pci_devp);
|
||||
+ pci_devp = xnfcalloc(xf86MaxPciDevs + 1, sizeof(pciConfigPtr));
|
||||
}
|
||||
|
||||
void pciSetOSBIOSPtr(int (*bios_fn)(PCITAG Tag, int basereg, unsigned char * buf, int len))
|
||||
@@ -913,7 +918,7 @@
|
||||
* result in an endless recursion if platform/OS specific PCI
|
||||
* bus probing code calls this function from with in it.
|
||||
*/
|
||||
- if (done || pci_devp[0])
|
||||
+ if (done || pci_devp)
|
||||
return pci_devp;
|
||||
|
||||
done = TRUE;
|
13
xserver-1.3.0-rom-search.patch
Normal file
13
xserver-1.3.0-rom-search.patch
Normal file
@ -0,0 +1,13 @@
|
||||
--- xorg-server-1.2.99.905/hw/xfree86/os-support/bus/linuxPci.c.jx 2007-04-09 16:15:43.000000000 -0400
|
||||
+++ xorg-server-1.2.99.905/hw/xfree86/os-support/bus/linuxPci.c 2007-04-09 17:37:28.000000000 -0400
|
||||
@@ -778,8 +778,8 @@
|
||||
bus = PCI_BUS_NO_DOMAIN(PCI_BUS_FROM_TAG(Tag));
|
||||
dev = PCI_DEV_FROM_TAG(Tag);
|
||||
func = PCI_FUNC_FROM_TAG(Tag);
|
||||
- sprintf(file, "/sys/devices/pci%04x:%02x/%04x:%02x:%02x.%1x/rom",
|
||||
- dom, bus, dom, bus, dev, func);
|
||||
+ sprintf(file, "/sys/bus/pci/devices/%04x:%02x:%02x.%1x/rom",
|
||||
+ dom, bus, dev, func);
|
||||
|
||||
/*
|
||||
* If the caller wants the ROM and the sysfs rom interface exists,
|
20
xserver-1.3.0-xnest-exposures.patch
Normal file
20
xserver-1.3.0-xnest-exposures.patch
Normal file
@ -0,0 +1,20 @@
|
||||
--- xorg-server-1.2.99.905/hw/xnest/Events.c.jx 2007-01-31 19:55:51.000000000 -0500
|
||||
+++ xorg-server-1.2.99.905/hw/xnest/Events.c 2007-04-09 18:42:51.000000000 -0400
|
||||
@@ -85,7 +85,7 @@
|
||||
while (XCheckIfEvent(xnestDisplay, &X, xnestExposurePredicate, NULL)) {
|
||||
pWin = xnestWindowPtr(X.xexpose.window);
|
||||
|
||||
- if (pWin) {
|
||||
+ if (pWin && X.xexpose.width && X.xexpose.height) {
|
||||
Box.x1 = pWin->drawable.x + wBorderWidth(pWin) + X.xexpose.x;
|
||||
Box.y1 = pWin->drawable.y + wBorderWidth(pWin) + X.xexpose.y;
|
||||
Box.x2 = Box.x1 + X.xexpose.width;
|
||||
@@ -93,7 +93,7 @@
|
||||
|
||||
REGION_INIT(pWin->drawable.pScreen, &Rgn, &Box, 1);
|
||||
|
||||
- miWindowExposures(pWin, &Rgn, NullRegion);
|
||||
+ miSendExposures(pWin, &Rgn, Box.x2, Box.y2);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user