Merge remote-tracking branch 'stevee/x-system-update'
This commit is contained in:
commit
bde92f73c2
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libICE
|
||||
version = 1.0.6
|
||||
version = 1.0.8
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,7 @@ description
|
|||
X.Org X11 libICE development package.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -33,7 +32,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libSM
|
||||
version = 1.1.1
|
||||
version = 1.2.1
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,7 @@ description
|
|||
X.Org X11 libSM development package.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -34,7 +33,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXau
|
||||
version = 1.0.6
|
||||
version = 1.0.7
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -14,16 +14,15 @@ license = MIT
|
|||
summary = Sample Authorization Protocol for X.
|
||||
|
||||
description
|
||||
This is a very simple mechanism for providing individual access \
|
||||
to an X Window System display.It uses existing core protocol and \
|
||||
library hooks for specifying authorization data in the connection \
|
||||
setup block to restrict use of the display to only those clients \
|
||||
that show that they know a server-specific key called a \
|
||||
This is a very simple mechanism for providing individual access
|
||||
to an X Window System display.It uses existing core protocol and
|
||||
library hooks for specifying authorization data in the connection
|
||||
setup block to restrict use of the display to only those clients
|
||||
that show that they know a server-specific key called a
|
||||
magic cookie.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -33,14 +32,10 @@ build
|
|||
|
||||
configure_options +=\
|
||||
--disable-static
|
||||
|
||||
#make_install_targets +=\
|
||||
# INSTALL="install -p"
|
||||
end
|
||||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXaw
|
||||
version = 1.0.7
|
||||
version = 1.0.11
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,7 @@ description
|
|||
Xaw is a widget set based on the X Toolkit Intrinsics (Xt) Library.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -39,7 +38,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXdamage
|
||||
version = 1.1.3
|
||||
version = 1.1.4
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,7 @@ description
|
|||
X.Org X11 libXdamage runtime library.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -34,7 +33,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXdmcp
|
||||
version = 1.0.3
|
||||
version = 1.1.1
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,7 @@ description
|
|||
X Display Manager Control Protocol library.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -32,7 +31,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXfixes
|
||||
version = 4.0.5
|
||||
version = 5.0
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -13,14 +13,11 @@ url = http://www.x.org/
|
|||
license = MIT
|
||||
summary = X Fixes library.
|
||||
|
||||
PKG_PACKAGES += %{name}-devel
|
||||
|
||||
description
|
||||
X Fixes library.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -35,7 +32,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXfont
|
||||
version = 1.4.2
|
||||
version = 1.4.5
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,7 @@ description
|
|||
X.Org X11 libXfont development package.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -36,7 +35,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXft
|
||||
version = 2.1.14
|
||||
version = 2.3.1
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,7 @@ description
|
|||
X.Org X11 libXft runtime library.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -35,7 +34,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXi
|
||||
version = 1.3.2
|
||||
version = 1.6.2
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,7 @@ description
|
|||
X.Org X11 libXi runtime library.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -35,7 +34,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXmu
|
||||
version = 1.0.5
|
||||
version = 1.1.1
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,7 @@ description
|
|||
X.Org X11 libXmu/libXmuu runtime libraries.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -38,7 +37,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXpm
|
||||
version = 3.5.8
|
||||
version = 3.5.10
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,7 @@ description
|
|||
X.Org X11 libXpm runtime library.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -39,7 +38,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXrandr
|
||||
version = 1.3.0
|
||||
version = 1.4.0
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,7 @@ description
|
|||
X.Org X11 libXrandr runtime library.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -35,7 +34,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -1,102 +0,0 @@
|
|||
diff --git a/configure.ac b/configure.ac
|
||||
index a018667..09c5d8d 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -32,7 +32,7 @@ dnl protocol, so Xrandr version l.n.m corresponds to protocol version l.n
|
||||
dnl
|
||||
AC_INIT(libXrandr, 1.3.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], libXrandr)
|
||||
AC_CONFIG_AUX_DIR(.)
|
||||
-AM_INIT_AUTOMAKE([dist-bzip2])
|
||||
+AM_INIT_AUTOMAKE([foreign dist-bzip2])
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
# Require xorg-macros: XORG_CWARNFLAGS, XORG_CHANGELOG
|
||||
diff --git a/include/X11/extensions/Xrandr.h b/include/X11/extensions/Xrandr.h
|
||||
index a411321..6b756a7 100644
|
||||
--- a/include/X11/extensions/Xrandr.h
|
||||
+++ b/include/X11/extensions/Xrandr.h
|
||||
@@ -197,6 +197,7 @@ Time XRRTimes (Display *dpy, int screen, Time *config_timestamp);
|
||||
|
||||
/* Version 1.2 additions */
|
||||
|
||||
+/* despite returning a Status, this returns 1 for success */
|
||||
Status
|
||||
XRRGetScreenSizeRange (Display *dpy, Window window,
|
||||
int *minWidth, int *minHeight,
|
||||
diff --git a/src/XrrConfig.c b/src/XrrConfig.c
|
||||
index db7a1ae..34ff3ef 100644
|
||||
--- a/src/XrrConfig.c
|
||||
+++ b/src/XrrConfig.c
|
||||
@@ -409,6 +409,7 @@ Status XRRSetScreenConfigAndRate (Display *dpy,
|
||||
|
||||
(void) _XReply (dpy, (xReply *) &rep, 0, xTrue);
|
||||
|
||||
+ /* actually .errorCode in struct xError */
|
||||
if (rep.status == RRSetConfigSuccess) {
|
||||
/* if we succeed, set our view of reality to what we set it to */
|
||||
config->config_timestamp = rep.newConfigTimestamp;
|
||||
diff --git a/src/XrrCrtc.c b/src/XrrCrtc.c
|
||||
index db9d0b4..697987a 100644
|
||||
--- a/src/XrrCrtc.c
|
||||
+++ b/src/XrrCrtc.c
|
||||
@@ -167,7 +167,7 @@ XRRGetCrtcGammaSize (Display *dpy, RRCrtc crtc)
|
||||
req->crtc = crtc;
|
||||
|
||||
if (!_XReply (dpy, (xReply *) &rep, 0, xFalse))
|
||||
- rep.status = RRSetConfigFailed;
|
||||
+ rep.size = 0;
|
||||
UnlockDisplay (dpy);
|
||||
SyncHandle ();
|
||||
return rep.size;
|
||||
@@ -179,7 +179,7 @@ XRRGetCrtcGamma (Display *dpy, RRCrtc crtc)
|
||||
XExtDisplayInfo *info = XRRFindDisplay(dpy);
|
||||
xRRGetCrtcGammaReply rep;
|
||||
xRRGetCrtcGammaReq *req;
|
||||
- XRRCrtcGamma *crtc_gamma;
|
||||
+ XRRCrtcGamma *crtc_gamma = NULL;
|
||||
long nbytes;
|
||||
long nbytesRead;
|
||||
|
||||
@@ -192,7 +192,7 @@ XRRGetCrtcGamma (Display *dpy, RRCrtc crtc)
|
||||
req->crtc = crtc;
|
||||
|
||||
if (!_XReply (dpy, (xReply *) &rep, 0, xFalse))
|
||||
- rep.status = RRSetConfigFailed;
|
||||
+ goto out;
|
||||
|
||||
nbytes = (long) rep.length << 2;
|
||||
|
||||
@@ -204,9 +204,7 @@ XRRGetCrtcGamma (Display *dpy, RRCrtc crtc)
|
||||
if (!crtc_gamma)
|
||||
{
|
||||
_XEatData (dpy, (unsigned long) nbytes);
|
||||
- UnlockDisplay (dpy);
|
||||
- SyncHandle ();
|
||||
- return NULL;
|
||||
+ goto out;
|
||||
}
|
||||
_XRead16 (dpy, crtc_gamma->red, rep.size * 2);
|
||||
_XRead16 (dpy, crtc_gamma->green, rep.size * 2);
|
||||
@@ -214,7 +212,8 @@ XRRGetCrtcGamma (Display *dpy, RRCrtc crtc)
|
||||
|
||||
if (nbytes > nbytesRead)
|
||||
_XEatData (dpy, (unsigned long) (nbytes - nbytesRead));
|
||||
-
|
||||
+
|
||||
+out:
|
||||
UnlockDisplay (dpy);
|
||||
SyncHandle ();
|
||||
return crtc_gamma;
|
||||
diff --git a/src/XrrProperty.c b/src/XrrProperty.c
|
||||
index 9554f9a..1a125b2 100644
|
||||
--- a/src/XrrProperty.c
|
||||
+++ b/src/XrrProperty.c
|
||||
@@ -272,7 +272,7 @@ XRRGetOutputProperty (Display *dpy, RROutput output,
|
||||
{
|
||||
UnlockDisplay (dpy);
|
||||
SyncHandle ();
|
||||
- return 1;
|
||||
+ return ((xError *)&rep)->errorCode;
|
||||
}
|
||||
|
||||
*prop = (unsigned char *) NULL;
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXres
|
||||
version = 1.0.4
|
||||
version = 1.0.6
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -14,12 +14,11 @@ license = MIT
|
|||
summary = X-Resource extension client library.
|
||||
|
||||
description
|
||||
X-Resource is an extension that allows a client to query \
|
||||
X-Resource is an extension that allows a client to query
|
||||
the X server about its usage of various resources.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -37,7 +36,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXt
|
||||
version = 1.0.7
|
||||
version = 1.1.3
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,7 @@ description
|
|||
X.Org X11 libXt runtime library.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -37,7 +36,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
--- libXt-1.0.2/xt.pc.in.libsm-fix 2006-06-28 14:56:37.000000000 -0400
|
||||
+++ libXt-1.0.2/xt.pc.in 2006-06-28 14:56:51.000000000 -0400
|
||||
@@ -7,7 +7,7 @@
|
||||
Name: Xt
|
||||
Description: X Toolkit Library
|
||||
Version: @VERSION@
|
||||
-Requires: xproto x11 sm
|
||||
+Requires: xproto x11
|
||||
Requires.private: x11 sm
|
||||
Cflags: -I${includedir}
|
||||
Libs: -L${libdir} -lXt
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXtst
|
||||
version = 1.1.0
|
||||
version = 1.2.1
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,7 @@ description
|
|||
X.Org X11 libXtst development package.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -35,7 +34,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXv
|
||||
version = 1.0.5
|
||||
version = 1.0.7
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -18,8 +18,7 @@ description
|
|||
X.Org X11 libXv runtime library.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -35,7 +34,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXvMC
|
||||
version = 1.0.6
|
||||
version = 1.0.7
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,7 @@ description
|
|||
X.Org X11 libXvMC runtime library.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -35,7 +34,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libXxf86vm
|
||||
version = 1.1.0
|
||||
version = 1.1.2
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,7 @@ description
|
|||
X.Org X11 libXxf86vm runtime library.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -34,7 +33,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libdrm
|
||||
version = 2.4.31
|
||||
version = 2.4.40
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libfontenc
|
||||
version = 1.0.5
|
||||
version = 1.1.1
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,7 +17,7 @@ description
|
|||
X.Org X11 libfontenc runtime library.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -32,7 +32,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libpciaccess
|
||||
version = 0.11.0
|
||||
version = 0.13.1
|
||||
release = 1
|
||||
|
||||
groups = Applications/Virtualization
|
||||
|
@ -13,22 +13,28 @@ license = LGPLv2.1+
|
|||
summary = Generic PCI access library.
|
||||
|
||||
description
|
||||
A toolkit to interact with the virtualization capabilities of recent \
|
||||
A toolkit to interact with the virtualization capabilities of recent
|
||||
versions of Linux.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
sources = %{thisapp}.tar.bz2
|
||||
source_dl = http://cgit.freedesktop.org/xorg/lib/libpciaccess/snapshot/
|
||||
|
||||
build
|
||||
requires
|
||||
autoconf
|
||||
automake
|
||||
pkg-config
|
||||
libtool
|
||||
xorg-x11-util-macros
|
||||
end
|
||||
|
||||
prepare_cmds
|
||||
./autogen.sh
|
||||
end
|
||||
end
|
||||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libxcb
|
||||
version = 1.7
|
||||
version = 1.9
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -14,12 +14,12 @@ license = MIT
|
|||
summary = A C binding to the X11 protocol.
|
||||
|
||||
description
|
||||
The X protocol C-language Binding (XCB) is a replacement for Xlib \
|
||||
featuring a small footprint, latency hiding, direct access to the \
|
||||
The X protocol C-language Binding (XCB) is a replacement for Xlib
|
||||
featuring a small footprint, latency hiding, direct access to the
|
||||
protocol, improved threading support, and extensibility.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
source_dl = http://xcb.freedesktop.org/dist/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -30,7 +30,7 @@ build
|
|||
libxslt-devel
|
||||
pkg-config
|
||||
python-devel
|
||||
xcb-proto
|
||||
xcb-proto >= 1.7
|
||||
xorg-x11-proto-devel
|
||||
end
|
||||
|
||||
|
@ -45,7 +45,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libxkbfile
|
||||
version = 1.0.6
|
||||
version = 1.0.8
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -14,18 +14,18 @@ license = MIT
|
|||
summary = X.Org X11 libxkbfile runtime library.
|
||||
|
||||
description
|
||||
The flex program generates scanners. Scanners are programs which can \
|
||||
recognize lexical patterns in text. Flex takes pairs of regular \
|
||||
expressions and C code as input and generates a C source file as \
|
||||
output. The output file is compiled and linked with a library to \
|
||||
produce an executable. The executable searches through its input for \
|
||||
occurrences of the regular expressions. When a match is found, it \
|
||||
executes the corresponding C code. Flex was designed to work with \
|
||||
both Yacc and Bison, and is used by many programs as part of their \
|
||||
The flex program generates scanners. Scanners are programs which can
|
||||
recognize lexical patterns in text. Flex takes pairs of regular
|
||||
expressions and C code as input and generates a C source file as
|
||||
output. The output file is compiled and linked with a library to
|
||||
produce an executable. The executable searches through its input for
|
||||
occurrences of the regular expressions. When a match is found, it
|
||||
executes the corresponding C code. Flex was designed to work with
|
||||
both Yacc and Bison, and is used by many programs as part of their
|
||||
build process.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
source_dl = http://ftp.x.org/pub/individual/lib/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -37,7 +37,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = libxslt
|
||||
version = 1.1.26
|
||||
version = 1.1.28
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -14,12 +14,12 @@ license = MIT
|
|||
summary = Library providing the Gnome XSLT engine.
|
||||
|
||||
description
|
||||
This C library allows to transform XML files into other XML files \
|
||||
(or HTML, text, ...) using the standard XSLT stylesheet transformation \
|
||||
This C library allows to transform XML files into other XML files
|
||||
(or HTML, text, ...) using the standard XSLT stylesheet transformation
|
||||
mechanism.
|
||||
end
|
||||
|
||||
source_dl =
|
||||
source_dl = ftp://xmlsoft.org/libxslt/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -32,7 +32,6 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
65
mesa/mesa.nm
65
mesa/mesa.nm
|
@ -4,8 +4,8 @@
|
|||
###############################################################################
|
||||
|
||||
name = mesa
|
||||
version = 7.11.2
|
||||
release = 2
|
||||
version = 9.0.2
|
||||
release = 1
|
||||
|
||||
groups = Development/Tools
|
||||
url = http://www.mesa3d.org
|
||||
|
@ -21,6 +21,8 @@ sources = MesaLib-%{version}.tar.bz2
|
|||
|
||||
build
|
||||
requires
|
||||
autoconf
|
||||
automake
|
||||
bison
|
||||
expat-devel
|
||||
flex
|
||||
|
@ -31,9 +33,11 @@ build
|
|||
libXext-devel
|
||||
libXfixes-devel
|
||||
libXxf86vm-devel
|
||||
libdrm-devel
|
||||
libdrm-devel >= 2.4.40
|
||||
libselinux-devel
|
||||
libtool
|
||||
libxcb-devel
|
||||
libxml2-devel
|
||||
makedepend
|
||||
xorg-x11-proto-devel
|
||||
end
|
||||
|
@ -50,13 +54,10 @@ build
|
|||
--enable-pic \
|
||||
--enable-selinux \
|
||||
--enable-pic \
|
||||
--with-driver=dri \
|
||||
--enable-dri \
|
||||
--with-dri-drivers="nouveau,radeon,r200%{platform_drivers}" \
|
||||
--with-gallium-drivers=swrast \
|
||||
--disable-asm \
|
||||
--disable-glw \
|
||||
--disable-glu \
|
||||
--disable-glut \
|
||||
--disable-gallium-llvm \
|
||||
--disable-gallium-egl \
|
||||
--disable-egl \
|
||||
|
@ -66,11 +67,59 @@ build
|
|||
prepare_cmds
|
||||
# Defaults to dri (not xlib) for libGL on all arches.
|
||||
sed -i 's/^default_driver.*$/default_driver="dri"/' configure.ac
|
||||
|
||||
# Regenerate build system.
|
||||
autoreconf -vfi
|
||||
end
|
||||
end
|
||||
|
||||
packages
|
||||
package %{name}
|
||||
package dri-drivers
|
||||
summary = Mesa-based DRI drivers.
|
||||
description
|
||||
This package contains the Mesa-based DRI drivers.
|
||||
end
|
||||
|
||||
obsoletes
|
||||
mesa <= 7.11.2-2
|
||||
end
|
||||
|
||||
files
|
||||
%{sysconfdir}/drirc
|
||||
%{libdir}/libdri*.so.*
|
||||
%{libdir}/dri/*
|
||||
end
|
||||
end
|
||||
|
||||
package libGL
|
||||
summary = Mesa libGL runtime library.
|
||||
description
|
||||
This package contains the Mesa libGL runtime libraries.
|
||||
end
|
||||
|
||||
obsoletes
|
||||
mesa <= 7.11.2-2
|
||||
end
|
||||
|
||||
files
|
||||
%{libdir}/libGL.so.*
|
||||
end
|
||||
end
|
||||
|
||||
package libglapi
|
||||
summary = Mesa shared glapi.
|
||||
description
|
||||
This package contains the shared glapi of Mesa.
|
||||
end
|
||||
|
||||
obsoletes
|
||||
mesa <= 7.11.2-2
|
||||
end
|
||||
|
||||
files
|
||||
%{libdir}/libglapi.so.*
|
||||
end
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
template DEVEL
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
diff -up Mesa-7.11/src/mesa/drivers/dri/sis/sis_context.h.jx Mesa-7.11/src/mesa/drivers/dri/sis/sis_context.h
|
||||
--- Mesa-7.11/src/mesa/drivers/dri/sis/sis_context.h.jx 2010-12-14 16:43:15.000000000 -0500
|
||||
+++ Mesa-7.11/src/mesa/drivers/dri/sis/sis_context.h 2011-09-09 11:47:56.454465358 -0400
|
||||
@@ -405,7 +405,7 @@ struct sis_context
|
||||
#elif defined(__ia64__)
|
||||
#define MMIO_WMB() __asm __volatile("mf" : : : "memory")
|
||||
#else
|
||||
-#error platform needs WMB
|
||||
+#define MMIO_WMB() __sync_synchronize()
|
||||
#endif
|
||||
|
||||
#define mEndPrimitive() \
|
|
@ -4,8 +4,8 @@
|
|||
###############################################################################
|
||||
|
||||
name = xcb-proto
|
||||
version = 1.6
|
||||
release = 2
|
||||
version = 1.8
|
||||
release = 1
|
||||
arch = noarch
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -21,7 +21,6 @@ description
|
|||
end
|
||||
|
||||
source_dl = http://xcb.freedesktop.org/dist/
|
||||
sources = %{thisapp}.tar.gz
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -37,5 +36,4 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = xorg-x11-drv-ati
|
||||
version = 6.13.1
|
||||
version = 7.1.0
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,23 +17,25 @@ description
|
|||
X.Org X11 ati video driver.
|
||||
end
|
||||
|
||||
# Specify the X Server version to build for.
|
||||
x11_server_ver = 1.13.2
|
||||
|
||||
thisapp = xf86-video-ati-%{version}
|
||||
|
||||
source_dl = http://ftp.x.org/pub/individual/driver/
|
||||
sources = xf86-video-ati-%{version}.tar.bz2
|
||||
|
||||
build
|
||||
requires
|
||||
libdrm-devel
|
||||
libpciaccess-devel
|
||||
libX11-devel
|
||||
mesa-devel
|
||||
mesa-devel >= 9.0.2
|
||||
pkg-config
|
||||
xorg-x11-proto-devel
|
||||
xorg-x11-server-devel
|
||||
xorg-x11-server-devel >= %{x11_server_ver}
|
||||
xorg-x11-util-macros
|
||||
end
|
||||
|
||||
DIR_APP = %{DIR_SRC}/xf86-video-ati-%{version}
|
||||
|
||||
CFLAGS += -Wl,-z,lazy
|
||||
|
||||
configure_options += \
|
||||
|
@ -47,6 +49,10 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
requires
|
||||
dri-drivers >= 9.0.2
|
||||
xorg-x11-server >= %{x11_server_ver}
|
||||
end
|
||||
end
|
||||
|
||||
package %{name}-debuginfo
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = xorg-x11-drv-evdev
|
||||
version = 2.4.99.901
|
||||
version = 2.7.3
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,20 +17,23 @@ description
|
|||
X.Org X11 evdev input driver.
|
||||
end
|
||||
|
||||
# Specify the X Server version to build for.
|
||||
x11_server_ver = 1.13.2
|
||||
|
||||
thisapp = xf86-input-evdev-%{version}
|
||||
|
||||
source_dl = http://ftp.x.org/pub/individual/driver/
|
||||
sources = xf86-input-evdev-%{version}.tar.bz2
|
||||
|
||||
build
|
||||
requires
|
||||
libudev-devel
|
||||
libxkbfile-devel
|
||||
pkg-config
|
||||
xorg-x11-proto-devel
|
||||
xorg-x11-server-devel
|
||||
xorg-x11-server-devel >= %{x11_server_ver}
|
||||
xorg-x11-util-macros
|
||||
end
|
||||
|
||||
DIR_APP = %{DIR_SRC}/xf86-input-evdev-%{version}
|
||||
|
||||
CFLAGS += -Wl,-z,lazy
|
||||
|
||||
configure_options += \
|
||||
|
@ -43,6 +46,9 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
requires
|
||||
xorg-x11-server >= %{x11_server_ver}
|
||||
end
|
||||
end
|
||||
|
||||
package %{name}-devel
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
Index: xf86-video-intel-2.11.0/src/drmmode_display.c
|
||||
===================================================================
|
||||
--- xf86-video-intel-2.11.0/src/drmmode_display.c
|
||||
+++ xf86-video-intel-2.11.0/src/drmmode_display.c 2010-04-29 00:18:34.000000000 +0200
|
||||
@@ -103,6 +103,7 @@
|
||||
"asus-laptop",
|
||||
"eeepc",
|
||||
"thinkpad_screen",
|
||||
+ "mbp_backlight",
|
||||
"acpi_video1",
|
||||
"acpi_video0",
|
||||
"fujitsu-laptop",
|
|
@ -1,37 +0,0 @@
|
|||
diff -up xf86-video-intel-20100319/src/drmmode_display.c.jx xf86-video-intel-20100319/src/drmmode_display.c
|
||||
--- xf86-video-intel-20100319/src/drmmode_display.c.jx 2010-03-22 13:24:13.483183499 -0400
|
||||
+++ xf86-video-intel-20100319/src/drmmode_display.c 2010-03-22 13:25:59.810184060 -0400
|
||||
@@ -1452,7 +1452,7 @@ Bool drmmode_pre_init(ScrnInfoPtr scrn,
|
||||
intel_screen_private *intel = intel_get_screen_private(scrn);
|
||||
struct drm_i915_getparam gp;
|
||||
drmmode_ptr drmmode;
|
||||
- unsigned int i;
|
||||
+ unsigned int i, lvds = -1;
|
||||
int has_flipping = 0;
|
||||
|
||||
drmmode = xnfalloc(sizeof *drmmode);
|
||||
@@ -1473,9 +1473,22 @@ Bool drmmode_pre_init(ScrnInfoPtr scrn,
|
||||
drmmode->mode_res->max_height);
|
||||
for (i = 0; i < drmmode->mode_res->count_crtcs; i++)
|
||||
drmmode_crtc_init(scrn, drmmode, i);
|
||||
+
|
||||
+ /* do LVDS first */
|
||||
+ for (i = 0; i < drmmode->mode_res->count_connectors; i++) {
|
||||
+ drmModeConnectorPtr koutput =
|
||||
+ drmModeGetConnector(drmmode->fd,
|
||||
+ drmmode->mode_res->connectors[i]);
|
||||
+ if (koutput->connector_type == DRM_MODE_CONNECTOR_LVDS) {
|
||||
+ drmmode_output_init(scrn, drmmode, i);
|
||||
+ lvds = i;
|
||||
+ }
|
||||
+ drmModeFreeConnector(koutput);
|
||||
+ }
|
||||
|
||||
for (i = 0; i < drmmode->mode_res->count_connectors; i++)
|
||||
- drmmode_output_init(scrn, drmmode, i);
|
||||
+ if (i != lvds)
|
||||
+ drmmode_output_init(scrn, drmmode, i);
|
||||
|
||||
xf86InitialConfiguration(scrn, TRUE);
|
||||
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
diff -up xf86-video-intel-2.11.0/src/drmmode_display.c.no-flip xf86-video-intel-2.11.0/src/drmmode_display.c
|
||||
--- xf86-video-intel-2.11.0/src/drmmode_display.c.no-flip 2010-05-03 15:30:19.000000000 -0400
|
||||
+++ xf86-video-intel-2.11.0/src/drmmode_display.c 2010-05-03 15:30:59.000000000 -0400
|
||||
@@ -1504,10 +1504,15 @@ Bool drmmode_pre_init(ScrnInfoPtr scrn,
|
||||
gp.value = &has_flipping;
|
||||
(void)drmCommandWriteRead(intel->drmSubFD, DRM_I915_GETPARAM, &gp,
|
||||
sizeof(gp));
|
||||
+
|
||||
+ xf86DrvMsg(scrn->scrnIndex, X_INFO,
|
||||
+ "Pageflipping %s in kernel, %s disabled in X\n",
|
||||
+ has_flipping ? "enabled" : "disabled",
|
||||
+ has_flipping ? "but" : "and");
|
||||
if (has_flipping) {
|
||||
xf86DrvMsg(scrn->scrnIndex, X_INFO,
|
||||
- "Kernel page flipping support detected, enabling\n");
|
||||
- intel->use_pageflipping = TRUE;
|
||||
+ "Don't panic: https://bugzilla.redhat.com/588421\n");
|
||||
+ intel->use_pageflipping = FALSE;
|
||||
drmmode->flip_count = 0;
|
||||
drmmode->event_context.version = DRM_EVENT_CONTEXT_VERSION;
|
||||
drmmode->event_context.vblank_handler = drmmode_vblank_handler;
|
||||
diff -up xf86-video-intel-2.11.0/src/i830_dri.c.no-flip xf86-video-intel-2.11.0/src/i830_dri.c
|
||||
--- xf86-video-intel-2.11.0/src/i830_dri.c.no-flip 2010-03-29 14:23:02.000000000 -0400
|
||||
+++ xf86-video-intel-2.11.0/src/i830_dri.c 2010-05-03 15:30:19.000000000 -0400
|
||||
@@ -1013,7 +1013,7 @@ Bool I830DRI2ScreenInit(ScreenPtr screen
|
||||
|
||||
info.CopyRegion = I830DRI2CopyRegion;
|
||||
#if DRI2INFOREC_VERSION >= 4
|
||||
- if (intel->use_pageflipping) {
|
||||
+ if (intel->use_pageflipping || 1) {
|
||||
info.version = 4;
|
||||
info.ScheduleSwap = I830DRI2ScheduleSwap;
|
||||
info.GetMSC = I830DRI2GetMSC;
|
|
@ -1,16 +0,0 @@
|
|||
diff -up xf86-video-intel-2.11.0/src/drmmode_display.c.jx xf86-video-intel-2.11.0/src/drmmode_display.c
|
||||
--- xf86-video-intel-2.11.0/src/drmmode_display.c.jx 2010-04-16 10:28:08.000000000 -0400
|
||||
+++ xf86-video-intel-2.11.0/src/drmmode_display.c 2010-04-26 15:28:58.000000000 -0400
|
||||
@@ -689,6 +689,12 @@ drmmode_output_mode_valid(xf86OutputPtr
|
||||
else
|
||||
return MODE_OK;
|
||||
}
|
||||
+
|
||||
+ /* I don't actually believe any VGA is this good */
|
||||
+ if (koutput->connector_type == DRM_MODE_CONNECTOR_VGA)
|
||||
+ if (pModes->Clock > 250000)
|
||||
+ return MODE_CLOCK_HIGH;
|
||||
+
|
||||
return MODE_OK;
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
From feff2ec80eeeba5074d19efcddf4867adf639b4f Mon Sep 17 00:00:00 2001
|
||||
From: Dave Airlie <airlied@redhat.com>
|
||||
Date: Mon, 5 Jul 2010 09:07:08 +1000
|
||||
Subject: [PATCH] uxa: don't compare planemask with FB_ALLONES.
|
||||
|
||||
planemask is an unsigned long initialised to ~0, on 64-bit this is not equal
|
||||
to an (unsigned int)-1.
|
||||
|
||||
Use the macro provided to do this.
|
||||
|
||||
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||||
---
|
||||
uxa/uxa-accel.c | 4 ++--
|
||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/uxa/uxa-accel.c b/uxa/uxa-accel.c
|
||||
index ded66a1..633b433 100644
|
||||
--- a/uxa/uxa-accel.c
|
||||
+++ b/uxa/uxa-accel.c
|
||||
@@ -81,7 +81,7 @@ uxa_fill_spans(DrawablePtr pDrawable, GCPtr pGC, int n,
|
||||
if (!dst_pixmap)
|
||||
goto fallback;
|
||||
|
||||
- if (pGC->alu != GXcopy || pGC->planemask != FB_ALLONES)
|
||||
+ if (pGC->alu != GXcopy || !UXA_PM_IS_SOLID(pDrawable, pGC->planemask))
|
||||
goto solid;
|
||||
|
||||
format = PictureMatchFormat(screen,
|
||||
@@ -1048,7 +1048,7 @@ uxa_fill_region_solid(DrawablePtr pDrawable,
|
||||
extents = REGION_EXTENTS(screen, pRegion);
|
||||
|
||||
/* Using GEM, the relocation costs outweigh the advantages of the blitter */
|
||||
- if (nbox == 1 || (alu != GXcopy && alu != GXclear) || planemask != FB_ALLONES) {
|
||||
+ if (nbox == 1 || (alu != GXcopy && alu != GXclear) || !UXA_PM_IS_SOLID(&pixmap->drawable, planemask)) {
|
||||
try_solid:
|
||||
if (uxa_screen->info->check_solid &&
|
||||
!uxa_screen->info->check_solid(&pixmap->drawable, alu, planemask))
|
||||
--
|
||||
1.7.1
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
diff -up xf86-video-intel-20090908/src/drmmode_display.c.jx xf86-video-intel-20090908/src/drmmode_display.c
|
||||
--- xf86-video-intel-20090908/src/drmmode_display.c.jx 2009-09-08 14:30:55.000000000 -0400
|
||||
+++ xf86-video-intel-20090908/src/drmmode_display.c 2009-09-08 14:31:09.000000000 -0400
|
||||
@@ -1195,8 +1195,19 @@ drmmode_output_get_property(xf86OutputPt
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+#ifdef RANDR_GET_CRTC_INTERFACE
|
||||
+static xf86CrtcPtr
|
||||
+drmmode_get_crtc(xf86OutputPtr output)
|
||||
+{
|
||||
+ return output->crtc;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
static const xf86OutputFuncsRec drmmode_output_funcs = {
|
||||
.create_resources = drmmode_output_create_resources,
|
||||
+#ifdef RANDR_GET_CRTC_INTERFACE
|
||||
+ .get_crtc = drmmode_get_crtc,
|
||||
+#endif
|
||||
#ifdef RANDR_12_INTERFACE
|
||||
.set_property = drmmode_output_set_property,
|
||||
.get_property = drmmode_output_get_property,
|
|
@ -1,23 +0,0 @@
|
|||
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
|
||||
index d50e640..d6c7cd3 100644
|
||||
--- a/src/drmmode_display.c
|
||||
+++ b/src/drmmode_display.c
|
||||
@@ -412,6 +412,18 @@ drmmode_output_detect(xf86OutputPtr output)
|
||||
drmmode_output->mode_output =
|
||||
drmModeGetConnector(drmmode->fd, drmmode_output->output_id);
|
||||
|
||||
+ switch (drmmode_output->mode_output->connector_type) {
|
||||
+ case DRM_MODE_CONNECTOR_SVIDEO:
|
||||
+ /* FIXME: KMS svideo detection is flaky an causes X to
|
||||
+ * come up in 1024x768 when it tries to pick a clone
|
||||
+ * mode that fits both the panel and the tv out. Once
|
||||
+ * KMS learns how to detect svideo better we can
|
||||
+ * remove this. */
|
||||
+ return DRM_MODE_UNKNOWNCONNECTION;
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
switch (drmmode_output->mode_output->connection) {
|
||||
case DRM_MODE_CONNECTED:
|
||||
status = XF86OutputStatusConnected;
|
|
@ -1,146 +0,0 @@
|
|||
diff -up xf86-video-intel-2.12.0/src/i830_driver.c.uevent xf86-video-intel-2.12.0/src/i830_driver.c
|
||||
--- xf86-video-intel-2.12.0/src/i830_driver.c.uevent 2010-06-24 16:29:49.000000000 -0400
|
||||
+++ xf86-video-intel-2.12.0/src/i830_driver.c 2010-06-25 11:40:01.335975581 -0400
|
||||
@@ -81,6 +81,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#include "i915_drm.h"
|
||||
#include <xf86drmMode.h>
|
||||
|
||||
+#include "libudev.h"
|
||||
+
|
||||
#define BIT(x) (1 << (x))
|
||||
#define MAX(a,b) ((a) > (b) ? (a) : (b))
|
||||
#define NB_OF(x) (sizeof (x) / sizeof (*x))
|
||||
@@ -996,6 +998,80 @@ int i830_crtc_to_pipe(xf86CrtcPtr crtc)
|
||||
return drmmode_get_pipe_from_crtc_id(intel->bufmgr, crtc);
|
||||
}
|
||||
|
||||
+static void
|
||||
+I830HandleUEvents(int fd, void *closure)
|
||||
+{
|
||||
+ ScrnInfoPtr scrn = closure;
|
||||
+ intel_screen_private *intel = intel_get_screen_private(scrn);
|
||||
+ struct udev_device *dev;
|
||||
+
|
||||
+ dev = udev_monitor_receive_device(intel->uevent_monitor);
|
||||
+ if (!dev)
|
||||
+ return;
|
||||
+
|
||||
+ /*
|
||||
+ * technically we should inspect the event to see that it's a hotplug.
|
||||
+ * but we know it's a hotplug, we don't get events for anything else.
|
||||
+ * XXX but we should definitely trim by drm node
|
||||
+ */
|
||||
+
|
||||
+ RRGetInfo(screenInfo.screens[scrn->scrnIndex], TRUE);
|
||||
+
|
||||
+ udev_device_unref(dev);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+I830UeventInit(ScrnInfoPtr scrn)
|
||||
+{
|
||||
+ intel_screen_private *intel = intel_get_screen_private(scrn);
|
||||
+ struct udev *u;
|
||||
+ struct udev_monitor *mon;
|
||||
+
|
||||
+ u = udev_new();
|
||||
+ if (!u)
|
||||
+ return;
|
||||
+
|
||||
+ mon = udev_monitor_new_from_netlink(u, "udev");
|
||||
+
|
||||
+ if (!mon) {
|
||||
+ udev_unref(u);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (udev_monitor_filter_add_match_subsystem_devtype(mon,
|
||||
+ "drm",
|
||||
+ "drm_minor") < 0 ||
|
||||
+ udev_monitor_enable_receiving(mon) < 0)
|
||||
+ {
|
||||
+ udev_monitor_unref(mon);
|
||||
+ udev_unref(u);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ intel->uevent_handler =
|
||||
+ xf86AddGeneralHandler(udev_monitor_get_fd(mon),
|
||||
+ I830HandleUEvents,
|
||||
+ scrn);
|
||||
+
|
||||
+ intel->uevent_monitor = mon;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+I830UeventFini(ScrnInfoPtr scrn)
|
||||
+{
|
||||
+ intel_screen_private *intel = intel_get_screen_private(scrn);
|
||||
+
|
||||
+ if (intel->uevent_handler)
|
||||
+ {
|
||||
+ struct udev *u = udev_monitor_get_udev(intel->uevent_monitor);
|
||||
+
|
||||
+ xf86RemoveGeneralHandler(intel->uevent_handler);
|
||||
+
|
||||
+ udev_monitor_unref(intel->uevent_monitor);
|
||||
+ udev_unref(u);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static Bool
|
||||
I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
|
||||
{
|
||||
@@ -1233,6 +1309,8 @@ I830ScreenInit(int scrnIndex, ScreenPtr
|
||||
|
||||
intel->suspended = FALSE;
|
||||
|
||||
+ I830UeventInit(scrn);
|
||||
+
|
||||
return uxa_resources_init(screen);
|
||||
}
|
||||
|
||||
@@ -1306,7 +1384,8 @@ static Bool I830CloseScreen(int scrnInde
|
||||
{
|
||||
ScrnInfoPtr scrn = xf86Screens[scrnIndex];
|
||||
intel_screen_private *intel = intel_get_screen_private(scrn);
|
||||
-
|
||||
+
|
||||
+ I830UeventFini(scrn);
|
||||
if (scrn->vtSema == TRUE) {
|
||||
I830LeaveVT(scrnIndex, 0);
|
||||
}
|
||||
diff -up xf86-video-intel-2.12.0/src/i830.h.uevent xf86-video-intel-2.12.0/src/i830.h
|
||||
--- xf86-video-intel-2.12.0/src/i830.h.uevent 2010-06-24 16:29:49.000000000 -0400
|
||||
+++ xf86-video-intel-2.12.0/src/i830.h 2010-06-25 11:39:15.665029821 -0400
|
||||
@@ -47,6 +47,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
#ifndef _I830_H_
|
||||
#define _I830_H_
|
||||
|
||||
+#include "libudev.h"
|
||||
+
|
||||
#include "xf86_OSproc.h"
|
||||
#include "compiler.h"
|
||||
#include "xf86PciInfo.h"
|
||||
@@ -432,6 +434,9 @@ typedef struct intel_screen_private {
|
||||
*/
|
||||
Bool fallback_debug;
|
||||
unsigned debug_flush;
|
||||
+
|
||||
+ struct udev_monitor *uevent_monitor;
|
||||
+ InputHandlerProc uevent_handler;
|
||||
} intel_screen_private;
|
||||
|
||||
enum {
|
||||
diff -up xf86-video-intel-2.12.0/src/Makefile.am.uevent xf86-video-intel-2.12.0/src/Makefile.am
|
||||
--- xf86-video-intel-2.12.0/src/Makefile.am.uevent 2010-06-24 16:29:37.000000000 -0400
|
||||
+++ xf86-video-intel-2.12.0/src/Makefile.am 2010-06-25 11:39:15.665029821 -0400
|
||||
@@ -32,7 +32,7 @@ AM_CFLAGS = @CWARNFLAGS@ @XORG_CFLAGS@ @
|
||||
intel_drv_la_LTLIBRARIES = intel_drv.la
|
||||
intel_drv_la_LDFLAGS = -module -avoid-version
|
||||
intel_drv_ladir = @moduledir@/drivers
|
||||
-intel_drv_la_LIBADD = -lm @DRM_LIBS@ -ldrm_intel ../uxa/libuxa.la
|
||||
+intel_drv_la_LIBADD = -ludev -lm @DRM_LIBS@ -ldrm_intel ../uxa/libuxa.la
|
||||
intel_drv_la_LIBADD += @PCIACCESS_LIBS@
|
||||
|
||||
INTEL_DRI_SRCS = \
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = xorg-x11-drv-intel
|
||||
version = 2.12.0
|
||||
version = 2.21.0
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,12 @@ description
|
|||
X.Org X11 intel video driver.
|
||||
end
|
||||
|
||||
# Specify the X Server version to build for.
|
||||
x11_server_ver = 1.13.2
|
||||
|
||||
thisapp = xf86-video-intel-%{version}
|
||||
|
||||
source_dl = http://ftp.x.org/pub/individual/driver/
|
||||
sources = xf86-video-intel-%{version}.tar.bz2
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -30,16 +34,14 @@ build
|
|||
libXvMC-devel
|
||||
libxcb-devel
|
||||
libtool
|
||||
mesa-devel
|
||||
mesa-devel >= 9.0.2
|
||||
pkg-config
|
||||
xcb-util-devel
|
||||
xorg-x11-proto-devel
|
||||
xorg-x11-server-devel
|
||||
xorg-x11-server-devel >= %{x11_server_ver}
|
||||
xorg-x11-util-macros
|
||||
end
|
||||
|
||||
DIR_APP = %{DIR_SRC}/xf86-video-intel-%{version}
|
||||
|
||||
CFLAGS += -Wl,-z,lazy
|
||||
|
||||
configure_options += \
|
||||
|
@ -62,6 +64,10 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
requires
|
||||
dri-drivers >= 9.0.2
|
||||
xorg-x11-server >= %{x11_server_ver}
|
||||
end
|
||||
end
|
||||
|
||||
package %{name}-debuginfo
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = xorg-x11-drv-keyboard
|
||||
version = 1.4.0
|
||||
version = 1.6.2
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,19 +17,21 @@ description
|
|||
X.Org X11 keyboard input driver.
|
||||
end
|
||||
|
||||
# Specify the X Server version to build for.
|
||||
x11_server_ver = 1.13.2
|
||||
|
||||
thisapp = xf86-input-keyboard-%{version}
|
||||
|
||||
source_dl = http://ftp.x.org/pub/individual/driver/
|
||||
sources = xf86-input-keyboard-%{version}.tar.bz2
|
||||
|
||||
build
|
||||
requires
|
||||
pkg-config
|
||||
xorg-x11-server-devel
|
||||
xorg-x11-server-devel >= %{x11_server_ver}
|
||||
xorg-x11-proto-devel
|
||||
xorg-x11-util-macros
|
||||
end
|
||||
|
||||
DIR_APP = %{DIR_SRC}/xf86-input-keyboard-%{version}
|
||||
|
||||
CFLAGS += -Wl,-z,lazy
|
||||
|
||||
configure_options += \
|
||||
|
@ -42,6 +44,10 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
requires
|
||||
xorg-x11-server >= %{x11_server_ver}
|
||||
end
|
||||
end
|
||||
|
||||
package %{name}-debuginfo
|
||||
template DEBUGINFO
|
||||
|
|
|
@ -3,46 +3,42 @@
|
|||
# Copyright (C) - IPFire Development Team <info@ipfire.org> #
|
||||
###############################################################################
|
||||
|
||||
name = xorg-x11-drv-nv
|
||||
version = 2.1.18
|
||||
name = xorg-x11-drv-modesetting
|
||||
version = 0.6.0
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
groups = X/Driver
|
||||
url = http://www.x.org/
|
||||
license = MIT
|
||||
summary = Xorg X11 nv video driver.
|
||||
summary = Xorg X11 modesetting video driver.
|
||||
|
||||
description
|
||||
X.Org X11 nv video driver.
|
||||
X.Org X11 modesetting video driver.
|
||||
end
|
||||
|
||||
# Specify the X Server version to build for.
|
||||
x11_server_ver = 1.13.2
|
||||
|
||||
thisapp = xf86-video-modesetting-%{version}
|
||||
|
||||
source_dl = http://ftp.x.org/pub/individual/driver/
|
||||
sources = xf86-video-nv-%{version}.tar.bz2
|
||||
|
||||
build
|
||||
requires
|
||||
autoconf
|
||||
automake
|
||||
libX11-devel
|
||||
libdrm-devel
|
||||
libtool
|
||||
libudev-devel
|
||||
pkg-config
|
||||
xorg-x11-proto-devel
|
||||
xorg-x11-server-devel
|
||||
xorg-x11-server-devel >= %{x11_server_ver}
|
||||
xorg-x11-util-macros
|
||||
end
|
||||
|
||||
DIR_APP = %{DIR_SRC}/xf86-video-nv-%{version}
|
||||
|
||||
CFLAGS += -Wl,-z,lazy
|
||||
|
||||
configure_options += \
|
||||
--disable-static
|
||||
|
||||
prepare_cmds
|
||||
autoreconf -vi
|
||||
end
|
||||
end
|
||||
|
||||
quality-agent
|
||||
|
@ -51,6 +47,9 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
requires
|
||||
xorg-x11-server >= %{x11_server_ver}
|
||||
end
|
||||
end
|
||||
|
||||
package %{name}-debuginfo
|
|
@ -4,8 +4,8 @@
|
|||
###############################################################################
|
||||
|
||||
name = xorg-x11-drv-mouse
|
||||
version = 1.5.0
|
||||
release = 2
|
||||
version = 1.8.1
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
groups = X/Driver
|
||||
|
@ -17,19 +17,21 @@ description
|
|||
X.Org X11 mouse input driver.
|
||||
end
|
||||
|
||||
# Specify the X Server version to build for.
|
||||
x11_server_ver = 1.13.2
|
||||
|
||||
thisapp = xf86-input-mouse-%{version}
|
||||
|
||||
source_dl = http://ftp.x.org/pub/individual/driver/
|
||||
sources = xf86-input-mouse-%{version}.tar.bz2
|
||||
|
||||
build
|
||||
requires
|
||||
pkg-config
|
||||
xorg-x11-proto-devel
|
||||
xorg-x11-server-devel
|
||||
xorg-x11-server-devel >= %{x11_server_ver}
|
||||
xorg-x11-util-macros
|
||||
end
|
||||
|
||||
DIR_APP = %{DIR_SRC}/xf86-input-mouse-%{version}
|
||||
|
||||
CFLAGS += -Wl,-z,lazy
|
||||
|
||||
configure_options += \
|
||||
|
@ -42,6 +44,10 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
requires
|
||||
xorg-x11-server >= %{x11_server_ver}
|
||||
end
|
||||
end
|
||||
|
||||
package %{name}-debuginfo
|
||||
template DEBUGINFO
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
###############################################################################
|
||||
# IPFire.org - An Open Source Firewall Solution #
|
||||
# Copyright (C) - IPFire Development Team <info@ipfire.org> #
|
||||
###############################################################################
|
||||
|
||||
name = xorg-x11-drv-nouveau
|
||||
version = 1.0.6
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
groups = X/Driver
|
||||
url = http://www.x.org/
|
||||
license = MIT
|
||||
summary = Xorg X11 nouveau video driver.
|
||||
|
||||
description
|
||||
X.Org X11 nv video driver.
|
||||
end
|
||||
|
||||
# Specify the X Server version to build for.
|
||||
x11_server_ver = 1.13.2
|
||||
|
||||
thisapp = xf86-video-nouveau-%{version}
|
||||
|
||||
source_dl = http://ftp.x.org/pub/individual/driver/
|
||||
|
||||
build
|
||||
requires
|
||||
libX11-devel
|
||||
libdrm-devel
|
||||
libudev-devel
|
||||
mesa-devel >= 9.0.2
|
||||
pkg-config
|
||||
xorg-x11-proto-devel
|
||||
xorg-x11-server-devel >= %{x11_server_ver}
|
||||
xorg-x11-util-macros
|
||||
end
|
||||
|
||||
CFLAGS += -Wl,-z,lazy
|
||||
|
||||
configure_options += \
|
||||
--disable-static
|
||||
end
|
||||
|
||||
quality-agent
|
||||
permit_not_full_relro = yes
|
||||
end
|
||||
|
||||
packages
|
||||
package %{name}
|
||||
obsoletes
|
||||
xorg-x11-drv-nv
|
||||
end
|
||||
|
||||
requires
|
||||
dri-drivers >= 9.0.2
|
||||
xorg-x11-server >= %{x11_server_ver}
|
||||
end
|
||||
end
|
||||
|
||||
package %{name}-debuginfo
|
||||
template DEBUGINFO
|
||||
end
|
||||
end
|
|
@ -1,36 +0,0 @@
|
|||
diff -up xf86-video-nv-2.1.6/src/nv_setup.c.jx xf86-video-nv-2.1.6/src/nv_setup.c
|
||||
--- xf86-video-nv-2.1.6/src/nv_setup.c.jx 2007-09-17 17:17:51.000000000 -0400
|
||||
+++ xf86-video-nv-2.1.6/src/nv_setup.c 2008-02-12 10:19:54.000000000 -0500
|
||||
@@ -668,27 +668,14 @@ NVCommonSetup(ScrnInfoPtr pScrn)
|
||||
}
|
||||
|
||||
if(monitorA) {
|
||||
- if((monitorA->features.input_type && pNv->FlatPanel) ||
|
||||
- (!monitorA->features.input_type && !pNv->FlatPanel))
|
||||
- {
|
||||
- if(monitorB) {
|
||||
- free(monitorB);
|
||||
- monitorB = NULL;
|
||||
- }
|
||||
- } else {
|
||||
- free(monitorA);
|
||||
- monitorA = NULL;
|
||||
- }
|
||||
+ if(monitorB) {
|
||||
+ free(monitorB);
|
||||
+ monitorB = NULL;
|
||||
+ }
|
||||
}
|
||||
|
||||
if(monitorB) {
|
||||
- if((monitorB->features.input_type && !pNv->FlatPanel) ||
|
||||
- (!monitorB->features.input_type && pNv->FlatPanel))
|
||||
- {
|
||||
- free(monitorB);
|
||||
- } else {
|
||||
- monitorA = monitorB;
|
||||
- }
|
||||
+ monitorA = monitorB;
|
||||
monitorB = NULL;
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
diff -up xf86-video-nv-2.1.6/src/nv_driver.c.jx xf86-video-nv-2.1.6/src/nv_driver.c
|
||||
--- xf86-video-nv-2.1.6/src/nv_driver.c.jx 2007-09-26 20:59:50.000000000 -0400
|
||||
+++ xf86-video-nv-2.1.6/src/nv_driver.c 2008-01-22 16:11:24.000000000 -0500
|
||||
@@ -1148,12 +1148,19 @@ NVFreeScreen(int scrnIndex, int flags)
|
||||
static ModeStatus
|
||||
NVValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
|
||||
{
|
||||
- NVPtr pNv = NVPTR(xf86Screens[scrnIndex]);
|
||||
+ ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
|
||||
+ NVPtr pNv = NVPTR(pScrn);
|
||||
|
||||
if(pNv->fpWidth && pNv->fpHeight)
|
||||
if((pNv->fpWidth < mode->HDisplay) || (pNv->fpHeight < mode->VDisplay))
|
||||
return (MODE_PANEL);
|
||||
|
||||
+ /* avoid starving the chip on scanout */
|
||||
+ if (pNv->Architecture == NV_ARCH_04 &&
|
||||
+ (mode->HDisplay * mode->VDisplay * (pScrn->bitsPerPixel / 8) >
|
||||
+ pScrn->videoRam * 952)) /* 1024 * 0.93, yay magic numbers */
|
||||
+ return MODE_BANDWIDTH;
|
||||
+
|
||||
return (MODE_OK);
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
diff -up xf86-video-nv-2.1.8/src/g80_dac.c.jx xf86-video-nv-2.1.8/src/g80_dac.c
|
||||
--- xf86-video-nv-2.1.8/src/g80_dac.c.jx 2008-01-29 20:55:21.000000000 -0500
|
||||
+++ xf86-video-nv-2.1.8/src/g80_dac.c 2008-04-29 16:44:08.000000000 -0400
|
||||
@@ -205,7 +205,7 @@ G80CreateDac(ScrnInfoPtr pScrn, ORNum or
|
||||
pPriv->set_pclk = G80DacSetPClk;
|
||||
output->driver_private = pPriv;
|
||||
output->interlaceAllowed = TRUE;
|
||||
- output->doubleScanAllowed = TRUE;
|
||||
+ output->doubleScanAllowed = FALSE;
|
||||
|
||||
return output;
|
||||
}
|
||||
diff -up xf86-video-nv-2.1.8/src/g80_sor.c.jx xf86-video-nv-2.1.8/src/g80_sor.c
|
||||
--- xf86-video-nv-2.1.8/src/g80_sor.c.jx 2008-03-06 15:33:15.000000000 -0500
|
||||
+++ xf86-video-nv-2.1.8/src/g80_sor.c 2008-04-29 16:44:16.000000000 -0400
|
||||
@@ -510,7 +510,7 @@ G80CreateSor(ScrnInfoPtr pScrn, ORNum or
|
||||
pPriv->set_pclk = G80SorSetPClk;
|
||||
output->driver_private = pPriv;
|
||||
output->interlaceAllowed = TRUE;
|
||||
- output->doubleScanAllowed = TRUE;
|
||||
+ output->doubleScanAllowed = FALSE;
|
||||
|
||||
return output;
|
||||
}
|
|
@ -1,55 +0,0 @@
|
|||
diff --git a/src/nv_driver.c b/src/nv_driver.c
|
||||
index 4bcc391..6252dd2 100644
|
||||
--- a/src/nv_driver.c
|
||||
+++ b/src/nv_driver.c
|
||||
@@ -32,6 +32,8 @@
|
||||
#include "xf86int10.h"
|
||||
#include "vbeModes.h"
|
||||
|
||||
+#define NV_ALIGN(x,bytes) (((x) + ((bytes) - 1)) & ~((bytes) - 1))
|
||||
+
|
||||
const OptionInfoRec * RivaAvailableOptions(int chipid, int busid);
|
||||
Bool RivaGetScrnInfoRec(PciChipsets *chips, int chip);
|
||||
Bool G80GetScrnInfoRec(PciChipsets *chips, int chip);
|
||||
@@ -2266,7 +2268,7 @@ NVScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
||||
unsigned char *FBStart;
|
||||
int width, height, displayWidth, offscreenHeight, shadowHeight;
|
||||
BoxRec AvailFBArea;
|
||||
-
|
||||
+ FBAreaPtr fbarea;
|
||||
/*
|
||||
* First get the ScrnInfoRec
|
||||
*/
|
||||
@@ -2421,7 +2423,31 @@ NVScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
||||
AvailFBArea.y1 = 0;
|
||||
AvailFBArea.x2 = pScrn->displayWidth;
|
||||
AvailFBArea.y2 = offscreenHeight;
|
||||
- xf86InitFBManager(pScreen, &AvailFBArea);
|
||||
+
|
||||
+
|
||||
+ if (!xf86InitFBManager(pScreen, &AvailFBArea)) {
|
||||
+ xf86DrvMsg(scrnIndex, X_ERROR,
|
||||
+ "Memory manager initialized to (%d,%d) (%d,%d) failed\n",
|
||||
+ AvailFBArea.x1, AvailFBArea.y1, AvailFBArea.x2, AvailFBArea.y2);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ xf86DrvMsg(scrnIndex, X_INFO,
|
||||
+ "Memory manager initialized to (%d,%d) (%d,%d)\n",
|
||||
+ AvailFBArea.x1, AvailFBArea.y1, AvailFBArea.x2, AvailFBArea.y2);
|
||||
+
|
||||
+ if ((fbarea = xf86AllocateOffscreenArea(pScreen,
|
||||
+ pScrn->displayWidth,
|
||||
+ NV_ALIGN(pScrn->virtualY, 64) -
|
||||
+ pScrn->virtualY + 2,
|
||||
+ 0, NULL, NULL, NULL))) {
|
||||
+ xf86DrvMsg(scrnIndex, X_INFO,
|
||||
+ "Reserved area from (%d,%d) to (%d,%d)\n",
|
||||
+ fbarea->box.x1, fbarea->box.y1,
|
||||
+ fbarea->box.x2, fbarea->box.y2);
|
||||
+ } else {
|
||||
+ xf86DrvMsg(scrnIndex, X_ERROR, "Unable to reserve area\n");
|
||||
+ }
|
||||
|
||||
if (!pNv->NoAccel)
|
||||
NVAccelInit(pScreen);
|
|
@ -1,45 +0,0 @@
|
|||
diff -up xf86-video-nv-2.1.14/src/g80_driver.c.da xf86-video-nv-2.1.14/src/g80_driver.c
|
||||
--- xf86-video-nv-2.1.14/src/g80_driver.c.da 2009-08-04 16:03:45.000000000 +1000
|
||||
+++ xf86-video-nv-2.1.14/src/g80_driver.c 2009-08-04 16:04:06.000000000 +1000
|
||||
@@ -27,6 +27,9 @@
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/stat.h>
|
||||
+#include <fcntl.h>
|
||||
|
||||
#include <xf86.h>
|
||||
#include <xf86_OSproc.h>
|
||||
@@ -163,6 +166,7 @@ G80PreInit(ScrnInfoPtr pScrn, int flags)
|
||||
char *s;
|
||||
CARD32 tmp;
|
||||
memType BAR1sizeKB;
|
||||
+ int fd;
|
||||
|
||||
if(flags & PROBE_DETECT)
|
||||
return TRUE;
|
||||
@@ -390,6 +394,14 @@ G80PreInit(ScrnInfoPtr pScrn, int flags)
|
||||
else
|
||||
pNv->table1 -= 0x10000;
|
||||
|
||||
+ /* Gag me with a horse */
|
||||
+
|
||||
+ fd = open ("/var/run/video.rom", O_CREAT|O_RDWR|O_EXCL, 0700);
|
||||
+ if(fd != -1) {
|
||||
+ write (fd, pNv->table1, 0x10000);
|
||||
+ close (fd);
|
||||
+ }
|
||||
+
|
||||
xf86CrtcConfigInit(pScrn, &randr12_screen_funcs);
|
||||
xf86CrtcSetSizeRange(pScrn, 320, 200, 8192, 8192);
|
||||
|
||||
@@ -939,6 +951,8 @@ G80EnterVT(int scrnIndex, int flags)
|
||||
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
|
||||
G80Ptr pNv = G80PTR(pScrn);
|
||||
|
||||
+ G80DispPreInit(pScrn);
|
||||
+
|
||||
/* Reinit the hardware */
|
||||
if(pNv->xaa)
|
||||
G80InitHW(pScrn);
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = xorg-x11-drv-vesa
|
||||
version = 2.3.0
|
||||
version = 2.3.2
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,23 +17,23 @@ description
|
|||
X.Org X11 vesa video driver.
|
||||
end
|
||||
|
||||
source_dl = http://ftp.x.org/pub/individual/driver/
|
||||
sources = xf86-video-vesa-%{version}.tar.bz2
|
||||
# Specify the X Server version to build for.
|
||||
x11_server_ver = 1.13.2
|
||||
|
||||
DIR_APP = $(DIR_SRC)/xf86-video-vesa-$(PKG_VER)
|
||||
thisapp = xf86-video-vesa-%{version}
|
||||
|
||||
source_dl = http://ftp.x.org/pub/individual/driver/
|
||||
|
||||
build
|
||||
requires
|
||||
libX11-devel
|
||||
libpciaccess-devel
|
||||
libpciaccess-devel >= 0.13.1
|
||||
pkg-config
|
||||
xorg-x11-proto-devel
|
||||
xorg-x11-server-devel
|
||||
xorg-x11-server-devel >= %{x11_server_ver}
|
||||
xorg-x11-util-macros
|
||||
end
|
||||
|
||||
DIR_APP = %{DIR_SRC}/xf86-video-vesa-%{version}
|
||||
|
||||
CFLAGS += -Wl,-z,lazy
|
||||
|
||||
configure_options += \
|
||||
|
@ -46,6 +46,9 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
requires
|
||||
xorg-x11-server >= %{x11_server_ver}
|
||||
end
|
||||
end
|
||||
|
||||
package %{name}-debuginfo
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = xorg-x11-drv-vmware
|
||||
version = 11.0.2
|
||||
version = 13.0.0
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
|
@ -17,8 +17,12 @@ description
|
|||
X.Org X11 vmware video driver.
|
||||
end
|
||||
|
||||
# Specify the X Server version to build for.
|
||||
x11_server_ver = 1.13.2
|
||||
|
||||
thisapp = xf86-video-vmware-%{version}
|
||||
|
||||
source_dl = http://ftp.x.org/pub/individual/driver/
|
||||
sources = xf86-video-vmware-%{version}.tar.bz2
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -27,13 +31,10 @@ build
|
|||
libpciaccess-devel
|
||||
pkg-config
|
||||
xorg-x11-proto-devel
|
||||
xorg-x11-server-devel
|
||||
xorg-x11-server-devel >= %{x11_server_ver}
|
||||
xorg-x11-util-macros
|
||||
end
|
||||
|
||||
|
||||
DIR_APP = %{DIR_SRC}/xf86-video-vmware-%{version}
|
||||
|
||||
CFLAGS += -Wl,-z,lazy
|
||||
|
||||
configure_options += \
|
||||
|
@ -46,6 +47,9 @@ end
|
|||
|
||||
packages
|
||||
package %{name}
|
||||
requires
|
||||
xorg-x11-server >= %{x11_server_ver}
|
||||
end
|
||||
end
|
||||
|
||||
package %{name}-debuginfo
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = xorg-x11-proto-devel
|
||||
version = 7.6
|
||||
version = 7.7
|
||||
release = 1
|
||||
arch = noarch
|
||||
|
||||
|
@ -18,8 +18,6 @@ description
|
|||
Development headers for X.org X11 protocol.
|
||||
end
|
||||
|
||||
build_requires += pkg-config
|
||||
|
||||
source_dl = http://ftp.x.org/pub/individual/proto/
|
||||
sources = \
|
||||
bigreqsproto-1.1.2.tar.bz2 \
|
||||
|
@ -31,7 +29,7 @@ sources = \
|
|||
fixesproto-5.0.tar.bz2 \
|
||||
fontsproto-2.1.2.tar.bz2 \
|
||||
glproto-1.4.16.tar.bz2 \
|
||||
inputproto-2.2.tar.bz2 \
|
||||
inputproto-2.2.99.1.tar.bz2 \
|
||||
kbproto-1.0.6.tar.bz2 \
|
||||
randrproto-1.4.0.tar.bz2 \
|
||||
recordproto-1.14.2.tar.bz2 \
|
||||
|
@ -51,6 +49,11 @@ sources = \
|
|||
xproxymanagementprotocol-1.0.3.tar.bz2
|
||||
|
||||
build
|
||||
requires
|
||||
pkg-config
|
||||
xorg-x11-util-macros
|
||||
end
|
||||
|
||||
prepare
|
||||
# Extract all source tarballs.
|
||||
for object in %{sources}; do
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
From 5d16c39108c72b08478b6bd548494d6c675495ee Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Wed, 4 Jan 2012 09:31:51 +1000
|
||||
Subject: [PATCH 6/7] Xext: fix selinux build failure
|
||||
|
||||
The server builds with -Werror=missing-braces, causing
|
||||
|
||||
xselinux_hooks.c: In function 'SELinuxFlaskInit':
|
||||
xselinux_hooks.c:851:12: error: missing braces around initializer
|
||||
[-Werror=missing-braces]
|
||||
xselinux_hooks.c:851:12: error: (near initialization for
|
||||
'avc_option.<anonymous>') [-Werror=missing-braces]
|
||||
cc1: some warnings being treated as errors
|
||||
|
||||
Source is libselinux' libselinux-rhat.patch which changes struct selinux_opt
|
||||
from { int, char * } to { int, union { char*, char** }}.
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
Xext/xselinux_hooks.c | 2 +-
|
||||
Xext/xselinux_label.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Xext/xselinux_hooks.c b/Xext/xselinux_hooks.c
|
||||
index e9c7e93..0302f2f 100644
|
||||
--- a/Xext/xselinux_hooks.c
|
||||
+++ b/Xext/xselinux_hooks.c
|
||||
@@ -851,7 +851,7 @@ SELinuxFlaskReset(void)
|
||||
void
|
||||
SELinuxFlaskInit(void)
|
||||
{
|
||||
- struct selinux_opt avc_option = { AVC_OPT_SETENFORCE, (char *) 0 };
|
||||
+ struct selinux_opt avc_option = { AVC_OPT_SETENFORCE, { (char *) 0 } };
|
||||
security_context_t ctx;
|
||||
int ret = TRUE;
|
||||
|
||||
diff --git a/Xext/xselinux_label.c b/Xext/xselinux_label.c
|
||||
index 2c33d1c..81f2f36 100644
|
||||
--- a/Xext/xselinux_label.c
|
||||
+++ b/Xext/xselinux_label.c
|
||||
@@ -361,7 +361,7 @@ SELinuxDefaultClientLabel(void)
|
||||
void
|
||||
SELinuxLabelInit(void)
|
||||
{
|
||||
- struct selinux_opt selabel_option = { SELABEL_OPT_VALIDATE, (char *) 1 };
|
||||
+ struct selinux_opt selabel_option = { SELABEL_OPT_VALIDATE, { (char *)1 } };
|
||||
|
||||
label_hnd = selabel_open(SELABEL_CTX_X, &selabel_option, 1);
|
||||
if (!label_hnd)
|
||||
--
|
||||
1.7.10.1
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
From 04bd8e2fa6be557f58a0e417b0f3befc56f5ef59 Mon Sep 17 00:00:00 2001
|
||||
From: Fedora X Ninjas <x@fedoraproject.org>
|
||||
Date: Thu, 1 Jul 2010 15:45:03 +1000
|
||||
Subject: [PATCH] Build libxf86config with -fPIC.
|
||||
|
||||
---
|
||||
hw/xfree86/parser/Makefile.am | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/parser/Makefile.am b/hw/xfree86/parser/Makefile.am
|
||||
index caf7079..655e73f 100644
|
||||
--- a/hw/xfree86/parser/Makefile.am
|
||||
+++ b/hw/xfree86/parser/Makefile.am
|
||||
@@ -32,7 +32,7 @@ libxf86config_internal_la_SOURCES = \
|
||||
|
||||
libxf86config_a_SOURCES = \
|
||||
$(INTERNAL_SOURCES)
|
||||
-libxf86config_a_CFLAGS = $(AM_CFLAGS)
|
||||
+libxf86config_a_CFLAGS = $(AM_CFLAGS) -fPIC -fvisibility=hidden
|
||||
|
||||
AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS) \
|
||||
-DSYSCONFDIR=\"$(sysconfdir)\" \
|
||||
--
|
||||
1.7.1
|
||||
|
|
@ -1,22 +1,22 @@
|
|||
From 4306b434038de7e2b17d3c4a6cfd87db469d3bda Mon Sep 17 00:00:00 2001
|
||||
From 66a3b14e118e90db80f96fcab52af4df35bc2377 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Mon, 10 Dec 2007 11:26:57 -0500
|
||||
Subject: [PATCH] Hack for proper MIT-SHM rejection for ssh-forwarded clients.
|
||||
|
||||
---
|
||||
Xext/shm.c | 15 +++++++++++++++
|
||||
1 files changed, 15 insertions(+), 0 deletions(-)
|
||||
Xext/shm.c | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
diff --git a/Xext/shm.c b/Xext/shm.c
|
||||
index 5937a03..5376c19 100644
|
||||
index de48020..c011210 100644
|
||||
--- a/Xext/shm.c
|
||||
+++ b/Xext/shm.c
|
||||
@@ -381,8 +381,21 @@
|
||||
@@ -321,8 +321,21 @@ shm_access(ClientPtr client, SHMPERM_TYPE * perm, int readonly)
|
||||
mode_t mask;
|
||||
int uidset = 0, gidset = 0;
|
||||
LocalClientCredRec *lcc;
|
||||
+ Bool is_ssh = FALSE;
|
||||
|
||||
|
||||
if (GetLocalClientCreds(client, &lcc) != -1) {
|
||||
+#ifdef linux
|
||||
+ if (lcc->fieldsSet & LCC_PID_SET) {
|
||||
|
@ -31,18 +31,18 @@ index 5937a03..5376c19 100644
|
|||
+ }
|
||||
+#endif
|
||||
|
||||
if (lcc->fieldsSet & LCC_UID_SET) {
|
||||
uid = lcc->euid;
|
||||
@@ -401,6 +414,9 @@
|
||||
}
|
||||
if (lcc->fieldsSet & LCC_UID_SET) {
|
||||
uid = lcc->euid;
|
||||
@@ -342,6 +355,9 @@ shm_access(ClientPtr client, SHMPERM_TYPE * perm, int readonly)
|
||||
#endif
|
||||
FreeLocalClientCreds(lcc);
|
||||
FreeLocalClientCreds(lcc);
|
||||
|
||||
+ if (is_ssh)
|
||||
+ return -1;
|
||||
+
|
||||
+ if (is_ssh)
|
||||
+ return -1;
|
||||
|
||||
if (uidset) {
|
||||
/* User id 0 always gets access */
|
||||
if (uidset) {
|
||||
/* User id 0 always gets access */
|
||||
if (uid == 0) {
|
||||
--
|
||||
1.5.3.4
|
||||
1.7.10.1
|
||||
|
||||
|
|
|
@ -1,155 +0,0 @@
|
|||
From eff3bb9c6f0b71a57705885a3fe6e6469d252d2b Mon Sep 17 00:00:00 2001
|
||||
From: Fedora X Ninjas <x@fedoraproject.org>
|
||||
Date: Wed, 20 Jan 2010 14:46:12 +1300
|
||||
Subject: [PATCH] Add nr for background=none root
|
||||
|
||||
---
|
||||
dix/globals.c | 1 +
|
||||
dix/window.c | 12 +++++++-----
|
||||
hw/xfree86/common/xf86Init.c | 11 +++++++++++
|
||||
hw/xfree86/common/xf86str.h | 5 ++++-
|
||||
include/opaque.h | 1 +
|
||||
os/utils.c | 3 +++
|
||||
6 files changed, 27 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dix/globals.c b/dix/globals.c
|
||||
index c24a94f..907a5e8 100644
|
||||
--- a/dix/globals.c
|
||||
+++ b/dix/globals.c
|
||||
@@ -124,6 +124,7 @@ FontPtr defaultFont; /* not declared in dix.h to avoid including font.h in
|
||||
CursorPtr rootCursor;
|
||||
Bool party_like_its_1989 = FALSE;
|
||||
Bool whiteRoot = FALSE;
|
||||
+Bool bgNoneRoot = FALSE;
|
||||
|
||||
int cursorScreenDevPriv[MAXSCREENS];
|
||||
|
||||
diff --git a/dix/window.c b/dix/window.c
|
||||
index caff1cb..be1d1c4 100644
|
||||
--- a/dix/window.c
|
||||
+++ b/dix/window.c
|
||||
@@ -466,22 +466,24 @@ InitRootWindow(WindowPtr pWin)
|
||||
pWin->optional->cursor = rootCursor;
|
||||
rootCursor->refcnt++;
|
||||
|
||||
+ pWin->backingStore = defaultBackingStore;
|
||||
+ pWin->forcedBS = (defaultBackingStore != NotUseful);
|
||||
|
||||
if (party_like_its_1989) {
|
||||
MakeRootTile(pWin);
|
||||
backFlag |= CWBackPixmap;
|
||||
+ pScreen->ChangeWindowAttributes(pWin, backFlag);
|
||||
+ } else if (bgNoneRoot) {
|
||||
+ /* nothing, handled in xf86CreateRootWindow */
|
||||
} else {
|
||||
if (whiteRoot)
|
||||
pWin->background.pixel = pScreen->whitePixel;
|
||||
else
|
||||
pWin->background.pixel = pScreen->blackPixel;
|
||||
backFlag |= CWBackPixel;
|
||||
- }
|
||||
|
||||
- pWin->backingStore = defaultBackingStore;
|
||||
- pWin->forcedBS = (defaultBackingStore != NotUseful);
|
||||
- /* We SHOULD check for an error value here XXX */
|
||||
- (*pScreen->ChangeWindowAttributes)(pWin, backFlag);
|
||||
+ pScreen->ChangeWindowAttributes(pWin, backFlag);
|
||||
+ }
|
||||
|
||||
MapWindow(pWin, serverClient);
|
||||
}
|
||||
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
|
||||
index 6707448..776b898 100644
|
||||
--- a/hw/xfree86/common/xf86Init.c
|
||||
+++ b/hw/xfree86/common/xf86Init.c
|
||||
@@ -77,6 +77,7 @@
|
||||
#ifdef RENDER
|
||||
#include "picturestr.h"
|
||||
#endif
|
||||
+#include "xace.h"
|
||||
|
||||
#include "xf86VGAarbiter.h"
|
||||
#include "globals.h"
|
||||
@@ -254,6 +255,7 @@ xf86CreateRootWindow(WindowPtr pWin)
|
||||
int ret = TRUE;
|
||||
int err = Success;
|
||||
ScreenPtr pScreen = pWin->drawable.pScreen;
|
||||
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
|
||||
RootWinPropPtr pProp;
|
||||
CreateWindowProcPtr CreateWindow = (CreateWindowProcPtr)
|
||||
dixLookupPrivate(&pScreen->devPrivates, xf86CreateRootWindowKey);
|
||||
@@ -305,6 +307,15 @@ xf86CreateRootWindow(WindowPtr pWin)
|
||||
}
|
||||
}
|
||||
|
||||
+ if (bgNoneRoot && pScrn->canDoBGNoneRoot) {
|
||||
+ pWin->backgroundState = XaceBackgroundNoneState(pWin);
|
||||
+ pWin->background.pixel = pScreen->whitePixel;
|
||||
+ pScreen->ChangeWindowAttributes(pWin, CWBackPixmap | CWBorderPixel | CWCursor | CWBackingStore);
|
||||
+ } else {
|
||||
+ pWin->background.pixel = pScreen->blackPixel;
|
||||
+ pScreen->ChangeWindowAttributes(pWin, CWBackPixel | CWBorderPixel | CWCursor | CWBackingStore);
|
||||
+ }
|
||||
+
|
||||
DebugF("xf86CreateRootWindow() returns %d\n", ret);
|
||||
return (ret);
|
||||
}
|
||||
diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h
|
||||
index de1f1b6..5c3aa00 100644
|
||||
--- a/hw/xfree86/common/xf86str.h
|
||||
+++ b/hw/xfree86/common/xf86str.h
|
||||
@@ -503,7 +503,7 @@ typedef struct _confdrirec {
|
||||
} confDRIRec, *confDRIPtr;
|
||||
|
||||
/* These values should be adjusted when new fields are added to ScrnInfoRec */
|
||||
-#define NUM_RESERVED_INTS 16
|
||||
+#define NUM_RESERVED_INTS 15
|
||||
#define NUM_RESERVED_POINTERS 14
|
||||
#define NUM_RESERVED_FUNCS 11
|
||||
|
||||
@@ -775,6 +775,9 @@ typedef struct _ScrnInfoRec {
|
||||
ClockRangePtr clockRanges;
|
||||
int adjustFlags;
|
||||
|
||||
+ /* -nr support */
|
||||
+ int canDoBGNoneRoot;
|
||||
+
|
||||
/*
|
||||
* These can be used when the minor ABI version is incremented.
|
||||
* The NUM_* parameters must be reduced appropriately to keep the
|
||||
diff --git a/include/opaque.h b/include/opaque.h
|
||||
index b3c7c70..fcc8c95 100644
|
||||
--- a/include/opaque.h
|
||||
+++ b/include/opaque.h
|
||||
@@ -71,6 +71,7 @@ extern _X_EXPORT Bool defeatAccessControl;
|
||||
extern _X_EXPORT long maxBigRequestSize;
|
||||
extern _X_EXPORT Bool party_like_its_1989;
|
||||
extern _X_EXPORT Bool whiteRoot;
|
||||
+extern _X_EXPORT Bool bgNoneRoot;
|
||||
|
||||
extern _X_EXPORT Bool CoreDump;
|
||||
|
||||
diff --git a/os/utils.c b/os/utils.c
|
||||
index d7c8388..40583d0 100644
|
||||
--- a/os/utils.c
|
||||
+++ b/os/utils.c
|
||||
@@ -513,6 +513,7 @@ void UseMsg(void)
|
||||
#endif
|
||||
ErrorF("-nolisten string don't listen on protocol\n");
|
||||
ErrorF("-noreset don't reset after last client exists\n");
|
||||
+ ErrorF("-nr create root window with no background\n");
|
||||
ErrorF("-reset reset after last client exists\n");
|
||||
ErrorF("-p # screen-saver pattern duration (minutes)\n");
|
||||
ErrorF("-pn accept failure to listen on all ports\n");
|
||||
@@ -856,6 +857,8 @@ ProcessCommandLine(int argc, char *argv[])
|
||||
defaultBackingStore = WhenMapped;
|
||||
else if ( strcmp( argv[i], "-wr") == 0)
|
||||
whiteRoot = TRUE;
|
||||
+ else if ( strcmp( argv[i], "-nr") == 0)
|
||||
+ bgNoneRoot = TRUE;
|
||||
else if ( strcmp( argv[i], "-maxbigreqsize") == 0) {
|
||||
if(++i < argc) {
|
||||
long reqSizeArg = atol(argv[i]);
|
||||
--
|
||||
1.6.6
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
From dc5cedd61e00afec33cbfaa7fdfbb6c357074dbd Mon Sep 17 00:00:00 2001
|
||||
From: =?utf-8?q?S=C3=B8ren=20Sandmann=20Pedersen?= <sandmann@redhat.com>
|
||||
Date: Thu, 11 Sep 2008 12:51:31 -0400
|
||||
Subject: [PATCH] Make room for an external monitor if we have enough video RAM
|
||||
|
||||
---
|
||||
hw/xfree86/modes/xf86Crtc.c | 9 +++++++++
|
||||
1 files changed, 9 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
|
||||
index 4de7e05..9bcf81b 100644
|
||||
--- a/hw/xfree86/modes/xf86Crtc.c
|
||||
+++ b/hw/xfree86/modes/xf86Crtc.c
|
||||
@@ -987,6 +987,15 @@ xf86DefaultScreenLimits (ScrnInfoPtr scrn, int *widthp, int *heightp,
|
||||
if (crtc_height > height)
|
||||
height = crtc_height;
|
||||
}
|
||||
+
|
||||
+ /* Make room for an external monitor if we have enough video ram */
|
||||
+ if (scrn->videoRam >= 65536)
|
||||
+ width += 1920;
|
||||
+ else if (scrn->videoRam >= 32768)
|
||||
+ width += 1280;
|
||||
+ else if (scrn->videoRam >= 16384)
|
||||
+ width += 1024;
|
||||
+
|
||||
if (config->maxWidth && width > config->maxWidth) width = config->maxWidth;
|
||||
if (config->maxHeight && height > config->maxHeight) height = config->maxHeight;
|
||||
if (config->minWidth && width < config->minWidth) width = config->minWidth;
|
||||
--
|
||||
1.6.0.1
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
From 079910986a1b8f5042e16ee2ba3ad9ed843b67ca Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Tue, 7 Oct 2008 11:09:14 -0400
|
||||
Subject: [PATCH] Force ModeDebug on.
|
||||
|
||||
---
|
||||
hw/xfree86/modes/xf86Crtc.c | 3 +--
|
||||
1 files changed, 1 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
|
||||
index 9bcf81b..a953c8a 100644
|
||||
--- a/hw/xfree86/modes/xf86Crtc.c
|
||||
+++ b/hw/xfree86/modes/xf86Crtc.c
|
||||
@@ -2084,8 +2084,7 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
|
||||
xf86ProcessOptions (scrn->scrnIndex,
|
||||
scrn->options,
|
||||
config->options);
|
||||
- config->debug_modes = xf86ReturnOptValBool (config->options,
|
||||
- OPTION_MODEDEBUG, FALSE);
|
||||
+ config->debug_modes = TRUE;
|
||||
|
||||
if (scrn->display->virtualX)
|
||||
width = scrn->display->virtualX;
|
||||
--
|
||||
1.6.0.1
|
||||
|
|
@ -1,31 +1,25 @@
|
|||
From a8079882f1884edc62a9de28af915bd8b65dfbbe Mon Sep 17 00:00:00 2001
|
||||
From 0002cde5312e785529b2901d7f8a82d5623e4ca7 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Wed, 11 Mar 2009 14:02:11 -0400
|
||||
Subject: [PATCH] Don't build the ACPI code.
|
||||
Date: Wed, 9 Nov 2011 11:52:06 +1000
|
||||
Subject: [PATCH 2/7] Don't build the ACPI code.
|
||||
|
||||
No good can come of this.
|
||||
---
|
||||
configure.ac | 2 --
|
||||
1 files changed, 0 insertions(+), 2 deletions(-)
|
||||
configure.ac | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 72ae67e..04716f8 100644
|
||||
index a12783c..54f4464 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1269,13 +1269,11 @@ if test "x$XORG" = xyes; then
|
||||
case $host_cpu in
|
||||
ia64*)
|
||||
linux_ia64=yes
|
||||
- linux_acpi="yes"
|
||||
;;
|
||||
alpha*)
|
||||
@@ -1620,7 +1620,6 @@ if test "x$XORG" = xyes; then
|
||||
linux_alpha=yes
|
||||
;;
|
||||
i*86|amd64*|x86_64*)
|
||||
i*86|amd64*|x86_64*|ia64*)
|
||||
- linux_acpi="yes"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
--
|
||||
1.6.1.3
|
||||
1.7.10.1
|
||||
|
||||
|
|
|
@ -1,35 +0,0 @@
|
|||
From ca85ebddd804305322014c6a71b4122a56c5e634 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Thu, 4 Mar 2010 15:18:38 +1000
|
||||
Subject: [PATCH] tweak default mode list yet again
|
||||
|
||||
---
|
||||
hw/xfree86/modes/xf86Crtc.c | 5 ++++-
|
||||
1 files changed, 4 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
|
||||
index 03277be..571ffd0 100644
|
||||
--- a/hw/xfree86/modes/xf86Crtc.c
|
||||
+++ b/hw/xfree86/modes/xf86Crtc.c
|
||||
@@ -1582,7 +1582,7 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn, int maxX, int maxY)
|
||||
int min_clock = 0;
|
||||
int max_clock = 0;
|
||||
double clock;
|
||||
- Bool add_default_modes = TRUE;
|
||||
+ Bool add_default_modes;
|
||||
Bool debug_modes = config->debug_modes ||
|
||||
xf86Initialising;
|
||||
enum det_monrec_source sync_source = sync_default;
|
||||
@@ -1628,6 +1628,9 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn, int maxX, int maxY)
|
||||
}
|
||||
|
||||
output_modes = (*output->funcs->get_modes) (output);
|
||||
+
|
||||
+ /* if the driver found modes, don't second-guess it */
|
||||
+ add_default_modes = (output_modes == NULL);
|
||||
|
||||
edid_monitor = output->MonInfo;
|
||||
|
||||
--
|
||||
1.6.6.1
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
From 16be69ef1e2ea9f19cd596b99b5ede7567d374b8 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Mon, 27 Jul 2009 16:52:42 -0400
|
||||
Subject: [PATCH 11/16] additional randr debugging
|
||||
|
||||
---
|
||||
randr/randr.c | 16 +++++++++++++++-
|
||||
1 files changed, 15 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/randr/randr.c b/randr/randr.c
|
||||
index 1c1d0c4..accf614 100644
|
||||
--- a/randr/randr.c
|
||||
+++ b/randr/randr.c
|
||||
@@ -477,10 +477,24 @@ RRVerticalRefresh (xRRModeInfo *mode)
|
||||
static int
|
||||
ProcRRDispatch (ClientPtr client)
|
||||
{
|
||||
+ int ret;
|
||||
REQUEST(xReq);
|
||||
if (stuff->data >= RRNumberRequests || !ProcRandrVector[stuff->data])
|
||||
return BadRequest;
|
||||
- return (*ProcRandrVector[stuff->data]) (client);
|
||||
+ ret = ProcRandrVector[stuff->data](client);
|
||||
+
|
||||
+ if (ret) {
|
||||
+ int i;
|
||||
+ ErrorF("RANDR failure: %d (extension base %d)\n", ret, RRErrorBase);
|
||||
+ for (i = 0; i < stuff->length; i++) {
|
||||
+ ErrorF("%08x ", ((unsigned int *)stuff) + i);
|
||||
+ if ((i+1) % 4 == 0)
|
||||
+ ErrorF("\n");
|
||||
+ }
|
||||
+ ErrorF("\n");
|
||||
+ }
|
||||
+
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
--
|
||||
1.6.4.2
|
||||
|
|
@ -1,47 +1,37 @@
|
|||
From 1766ae8a69daa06730e41d094fdddf53db3a1a9e Mon Sep 17 00:00:00 2001
|
||||
From 291bc9f827188461ff9717efccec1e350db537e8 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Tue, 28 Jul 2009 11:07:13 -0400
|
||||
Subject: [PATCH] RANDR: right-of placement by default
|
||||
Subject: [PATCH 3/7] RANDR: right-of placement by default
|
||||
|
||||
[Enhanced to add a new prefer clone option for drivers. This
|
||||
allows for servers like RN50 where two heads are disjoint. - airlied]
|
||||
|
||||
[Enhanced to ignore rightof on single crtc cards - airlied]
|
||||
---
|
||||
hw/xfree86/common/xf86str.h | 9 ++++-
|
||||
hw/xfree86/modes/xf86Crtc.c | 77 +++++++++++++++++++++++++++++++++++++++----
|
||||
2 files changed, 77 insertions(+), 9 deletions(-)
|
||||
hw/xfree86/common/xf86str.h | 8 ++++-
|
||||
hw/xfree86/modes/xf86Crtc.c | 76 ++++++++++++++++++++++++++++++++++++++-----
|
||||
2 files changed, 75 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h
|
||||
index 5c3aa00..8224668 100644
|
||||
index 0590262..d246634 100644
|
||||
--- a/hw/xfree86/common/xf86str.h
|
||||
+++ b/hw/xfree86/common/xf86str.h
|
||||
@@ -503,10 +503,13 @@ typedef struct _confdrirec {
|
||||
@@ -508,10 +508,13 @@ typedef struct _confdrirec {
|
||||
} confDRIRec, *confDRIPtr;
|
||||
|
||||
/* These values should be adjusted when new fields are added to ScrnInfoRec */
|
||||
-#define NUM_RESERVED_INTS 15
|
||||
+#define NUM_RESERVED_INTS 14
|
||||
-#define NUM_RESERVED_INTS 16
|
||||
+#define NUM_RESERVED_INTS 15
|
||||
#define NUM_RESERVED_POINTERS 14
|
||||
#define NUM_RESERVED_FUNCS 11
|
||||
#define NUM_RESERVED_FUNCS 10
|
||||
|
||||
+/* let clients know they can use this */
|
||||
+#define XF86_SCRN_HAS_PREFER_CLONE 1
|
||||
+
|
||||
typedef pointer (*funcPointer)(void);
|
||||
typedef pointer (*funcPointer) (void);
|
||||
|
||||
/* flags for depth 24 pixmap options */
|
||||
@@ -672,7 +675,6 @@ typedef void xf86SetOverscanProc (ScrnInfoPtr, int);
|
||||
* are to be dependent on compile-time defines.
|
||||
*/
|
||||
|
||||
-
|
||||
typedef struct _ScrnInfoRec {
|
||||
int driverVersion;
|
||||
char * driverName; /* canonical name used in */
|
||||
@@ -778,6 +780,9 @@ typedef struct _ScrnInfoRec {
|
||||
/* -nr support */
|
||||
int canDoBGNoneRoot;
|
||||
@@ -769,6 +772,9 @@ typedef struct _ScrnInfoRec {
|
||||
ClockRangePtr clockRanges;
|
||||
int adjustFlags;
|
||||
|
||||
+ /* initial rightof support disable */
|
||||
+ int preferClone;
|
||||
|
@ -50,26 +40,26 @@ index 5c3aa00..8224668 100644
|
|||
* These can be used when the minor ABI version is incremented.
|
||||
* The NUM_* parameters must be reduced appropriately to keep the
|
||||
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
|
||||
index a66c979..4d14f57 100644
|
||||
index 154f684..c58088d 100644
|
||||
--- a/hw/xfree86/modes/xf86Crtc.c
|
||||
+++ b/hw/xfree86/modes/xf86Crtc.c
|
||||
@@ -1146,6 +1146,15 @@ xf86InitialOutputPositions (ScrnInfoPtr scrn, DisplayModePtr *modes)
|
||||
int o;
|
||||
int min_x, min_y;
|
||||
|
||||
@@ -1130,6 +1130,15 @@ xf86InitialOutputPositions(ScrnInfoPtr scrn, DisplayModePtr * modes)
|
||||
int o;
|
||||
int min_x, min_y;
|
||||
|
||||
+ /* check for initial right-of heuristic */
|
||||
+ for (o = 0; o < config->num_output; o++)
|
||||
+ {
|
||||
+ xf86OutputPtr output = config->output[o];
|
||||
+ xf86OutputPtr output = config->output[o];
|
||||
+
|
||||
+ if (output->initial_x || output->initial_y)
|
||||
+ if (output->initial_x || output->initial_y)
|
||||
+ return TRUE;
|
||||
+ }
|
||||
+
|
||||
for (o = 0; o < config->num_output; o++)
|
||||
{
|
||||
xf86OutputPtr output = config->output[o];
|
||||
@@ -2028,6 +2037,60 @@ bestModeForAspect(xf86CrtcConfigPtr config, Bool *enabled, float aspect)
|
||||
for (o = 0; o < config->num_output; o++) {
|
||||
xf86OutputPtr output = config->output[o];
|
||||
|
||||
@@ -1998,6 +2007,57 @@ bestModeForAspect(xf86CrtcConfigPtr config, Bool *enabled, float aspect)
|
||||
return match;
|
||||
}
|
||||
|
||||
|
@ -85,43 +75,40 @@ index a66c979..4d14f57 100644
|
|||
+
|
||||
+static Bool
|
||||
+xf86TargetRightOf(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
|
||||
+ DisplayModePtr *modes, Bool *enabled,
|
||||
+ int width, int height)
|
||||
+ DisplayModePtr *modes, Bool *enabled,
|
||||
+ int width, int height)
|
||||
+{
|
||||
+ int o;
|
||||
+ int w = 0;
|
||||
+
|
||||
+ if (config->num_crtc == 1)
|
||||
+ return FALSE;
|
||||
+
|
||||
+ if (scrn->preferClone)
|
||||
+ return FALSE;
|
||||
+ return FALSE;
|
||||
+
|
||||
+ if (numEnabledOutputs(config, enabled) < 2)
|
||||
+ return FALSE;
|
||||
+ return FALSE;
|
||||
+
|
||||
+ for (o = -1; nextEnabledOutput(config, enabled, &o); ) {
|
||||
+ DisplayModePtr mode =
|
||||
+ xf86OutputHasPreferredMode(config->output[o], width, height);
|
||||
+ DisplayModePtr mode =
|
||||
+ xf86OutputHasPreferredMode(config->output[o], width, height);
|
||||
+
|
||||
+ if (!mode)
|
||||
+ return FALSE;
|
||||
+ if (!mode)
|
||||
+ return FALSE;
|
||||
+
|
||||
+ w += mode->HDisplay;
|
||||
+ w += mode->HDisplay;
|
||||
+ }
|
||||
+
|
||||
+ if (w > width)
|
||||
+ return FALSE;
|
||||
+ return FALSE;
|
||||
+
|
||||
+ w = 0;
|
||||
+ for (o = -1; nextEnabledOutput(config, enabled, &o); ) {
|
||||
+ DisplayModePtr mode =
|
||||
+ xf86OutputHasPreferredMode(config->output[o], width, height);
|
||||
+ DisplayModePtr mode =
|
||||
+ xf86OutputHasPreferredMode(config->output[o], width, height);
|
||||
+
|
||||
+ config->output[o]->initial_x = w;
|
||||
+ w += mode->HDisplay;
|
||||
+ config->output[o]->initial_x = w;
|
||||
+ w += mode->HDisplay;
|
||||
+
|
||||
+ modes[o] = mode;
|
||||
+ modes[o] = mode;
|
||||
+ }
|
||||
+
|
||||
+ return TRUE;
|
||||
|
@ -129,44 +116,47 @@ index a66c979..4d14f57 100644
|
|||
+
|
||||
static Bool
|
||||
xf86TargetPreferred(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
|
||||
DisplayModePtr *modes, Bool *enabled,
|
||||
@@ -2085,13 +2148,9 @@ xf86TargetPreferred(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
|
||||
* biggest mode for its aspect ratio, assuming one exists.
|
||||
DisplayModePtr * modes, Bool *enabled,
|
||||
@@ -2074,14 +2134,10 @@ xf86TargetPreferred(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
|
||||
*/
|
||||
if (!ret) do {
|
||||
- int i = 0;
|
||||
float aspect = 0.0;
|
||||
if (!ret)
|
||||
do {
|
||||
- int i = 0;
|
||||
float aspect = 0.0;
|
||||
DisplayModePtr a = NULL, b = NULL;
|
||||
|
||||
- /* count the number of enabled outputs */
|
||||
- for (i = 0, p = -1; nextEnabledOutput(config, enabled, &p); i++) ;
|
||||
- /* count the number of enabled outputs */
|
||||
- for (i = 0, p = -1; nextEnabledOutput(config, enabled, &p); i++);
|
||||
-
|
||||
- if (i != 1)
|
||||
+ if (numEnabledOutputs(config, enabled) != 1)
|
||||
break;
|
||||
- if (i != 1)
|
||||
+ if (numEnabledOutputs(config, enabled) != 1)
|
||||
break;
|
||||
|
||||
p = -1;
|
||||
@@ -2378,6 +2437,8 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
|
||||
|
||||
if (xf86TargetUserpref(scrn, config, modes, enabled, width, height))
|
||||
xf86DrvMsg(i, X_INFO, "Using user preference for initial modes\n");
|
||||
+ else if (xf86TargetRightOf(scrn, config, modes, enabled, width, height))
|
||||
+ xf86DrvMsg(i, X_INFO, "Using spanning desktop for initial modes\n");
|
||||
else if (xf86TargetPreferred(scrn, config, modes, enabled, width, height))
|
||||
xf86DrvMsg(i, X_INFO, "Using exact sizes for initial modes\n");
|
||||
else if (xf86TargetAspect(scrn, config, modes, enabled, width, height))
|
||||
@@ -2394,8 +2455,10 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
|
||||
config->output[o]->name);
|
||||
else
|
||||
xf86DrvMsg (scrn->scrnIndex, X_INFO,
|
||||
- "Output %s using initial mode %s\n",
|
||||
- config->output[o]->name, modes[o]->name);
|
||||
+ "Output %s using initial mode %s +%d+%d\n",
|
||||
+ config->output[o]->name, modes[o]->name,
|
||||
p = -1;
|
||||
@@ -2385,6 +2441,8 @@ xf86InitialConfiguration(ScrnInfoPtr scrn, Bool canGrow)
|
||||
else {
|
||||
if (xf86TargetUserpref(scrn, config, modes, enabled, width, height))
|
||||
xf86DrvMsg(i, X_INFO, "Using user preference for initial modes\n");
|
||||
+ else if (xf86TargetRightOf(scrn, config, modes, enabled, width, height))
|
||||
+ xf86DrvMsg(i, X_INFO, "Using spanning desktop for initial modes\n");
|
||||
else if (xf86TargetPreferred
|
||||
(scrn, config, modes, enabled, width, height))
|
||||
xf86DrvMsg(i, X_INFO, "Using exact sizes for initial modes\n");
|
||||
@@ -2404,9 +2462,11 @@ xf86InitialConfiguration(ScrnInfoPtr scrn, Bool canGrow)
|
||||
"Output %s enabled but has no modes\n",
|
||||
config->output[o]->name);
|
||||
else
|
||||
- xf86DrvMsg(scrn->scrnIndex, X_INFO,
|
||||
- "Output %s using initial mode %s\n",
|
||||
- config->output[o]->name, modes[o]->name);
|
||||
+ xf86DrvMsg (scrn->scrnIndex, X_INFO,
|
||||
+ "Output %s using initial mode %s +%d+%d\n",
|
||||
+ config->output[o]->name, modes[o]->name,
|
||||
+ config->output[o]->initial_x,
|
||||
+ config->output[o]->initial_y);
|
||||
}
|
||||
|
||||
/*
|
||||
--
|
||||
1.7.0.1
|
||||
1.7.10.4
|
||||
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
From 18d2bd8cb513a0436739916620532247f13dbf03 Mon Sep 17 00:00:00 2001
|
||||
From: Fedora X Ninjas <x@fedoraproject.org>
|
||||
Date: Thu, 8 Oct 2009 15:25:24 -0400
|
||||
Subject: [PATCH] randr gamma reload hack
|
||||
|
||||
---
|
||||
hw/xfree86/loader/sdksyms.c | 4 ++++
|
||||
hw/xfree86/modes/xf86RandR12.c | 6 ++++++
|
||||
2 files changed, 10 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
|
||||
index 6ea9d26..41bac11 100644
|
||||
--- a/hw/xfree86/modes/xf86RandR12.c
|
||||
+++ b/hw/xfree86/modes/xf86RandR12.c
|
||||
@@ -1746,12 +1746,18 @@ xf86RandR12EnterVT (int screen_index, int flags)
|
||||
{
|
||||
ScreenPtr pScreen = screenInfo.screens[screen_index];
|
||||
XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen);
|
||||
+ rrScrPrivPtr rp = rrGetScrPriv(pScreen);
|
||||
|
||||
if (randrp->orig_EnterVT) {
|
||||
if (!randrp->orig_EnterVT (screen_index, flags))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
+ /* reload gamma */
|
||||
+ int i;
|
||||
+ for (i = 0; i < rp->numCrtcs; i++)
|
||||
+ xf86RandR12CrtcSetGamma(pScreen, rp->crtcs[i]);
|
||||
+
|
||||
return RRGetInfo (pScreen, TRUE); /* force a re-probe of outputs and notify clients about changes */
|
||||
}
|
||||
|
||||
--
|
||||
1.6.5.rc2
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From acc64ce5be7383c09e88a23aab06ebc2403f2ca3 Mon Sep 17 00:00:00 2001
|
||||
From: Bill Nottingham <notting@redhat.com>
|
||||
Date: Fri, 6 Nov 2009 10:32:27 +1000
|
||||
Subject: [PATCH] fix KDM gamma issue on vt switch
|
||||
|
||||
---
|
||||
hw/xfree86/modes/xf86RandR12.c | 4 ++++
|
||||
1 files changed, 4 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
|
||||
index 6ea9d26..ece12b9 100644
|
||||
--- a/hw/xfree86/modes/xf86RandR12.c
|
||||
+++ b/hw/xfree86/modes/xf86RandR12.c
|
||||
@@ -1761,6 +1761,7 @@ xf86RandR12Init12 (ScreenPtr pScreen)
|
||||
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
|
||||
rrScrPrivPtr rp = rrGetScrPriv(pScreen);
|
||||
XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen);
|
||||
+ int i;
|
||||
|
||||
rp->rrGetInfo = xf86RandR12GetInfo12;
|
||||
rp->rrScreenSetSize = xf86RandR12ScreenSetSize;
|
||||
@@ -1790,6 +1791,9 @@ xf86RandR12Init12 (ScreenPtr pScreen)
|
||||
*/
|
||||
if (!xf86RandR12SetInfo12 (pScreen))
|
||||
return FALSE;
|
||||
+ for (i = 0; i < rp->numCrtcs; i++) {
|
||||
+ xf86RandR12CrtcGetGamma(pScreen, rp->crtcs[i]);
|
||||
+ }
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
--
|
||||
1.6.5.1
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
From 6d9585ba6a5784328de479c6b648d7b7d6cec64c Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Thu, 29 Oct 2009 19:04:10 -0400
|
||||
Subject: [PATCH] multilib fix for -devel subpackage
|
||||
|
||||
---
|
||||
include/colormapst.h | 4 ++--
|
||||
include/xorg-server.h.in | 7 ++++---
|
||||
2 files changed, 6 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/include/colormapst.h b/include/colormapst.h
|
||||
index f1fc8eb..274cd65 100644
|
||||
--- a/include/colormapst.h
|
||||
+++ b/include/colormapst.h
|
||||
@@ -103,12 +103,12 @@ typedef struct _ColormapRec
|
||||
{
|
||||
VisualPtr pVisual;
|
||||
short class; /* PseudoColor or DirectColor */
|
||||
-#if defined(_XSERVER64)
|
||||
+#ifdef __LP64__
|
||||
short pad0;
|
||||
XID pad1;
|
||||
#endif
|
||||
XID mid; /* client's name for colormap */
|
||||
-#if defined(_XSERVER64) && (X_BYTE_ORDER == X_LITTLE_ENDIAN)
|
||||
+#if defined(__LP64__) && (X_BYTE_ORDER == X_LITTLE_ENDIAN)
|
||||
XID pad2;
|
||||
#endif
|
||||
ScreenPtr pScreen; /* screen map is associated with */
|
||||
diff --git a/include/xorg-server.h.in b/include/xorg-server.h.in
|
||||
index 76cab16..081b8f3 100644
|
||||
--- a/include/xorg-server.h.in
|
||||
+++ b/include/xorg-server.h.in
|
||||
@@ -157,9 +157,6 @@
|
||||
/* Name of X server */
|
||||
#undef __XSERVERNAME__
|
||||
|
||||
-/* Define to 1 if unsigned long is 64 bits. */
|
||||
-#undef _XSERVER64
|
||||
-
|
||||
/* Building vgahw module */
|
||||
#undef WITH_VGAHW
|
||||
|
||||
@@ -187,4 +184,8 @@
|
||||
/* X Access Control Extension */
|
||||
#undef XACE
|
||||
|
||||
+#ifdef __LP64__
|
||||
+#define _XSERVER64 1
|
||||
+#endif
|
||||
+
|
||||
#endif /* _XORG_SERVER_H_ */
|
||||
--
|
||||
1.6.5.2
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
From 1f315578bf759c85261b1f2295efbf0dba852f73 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Williamson <adamwill@shaw.ca>
|
||||
Date: Thu, 25 Feb 2010 10:34:49 -0800
|
||||
Subject: [PATCH] disable vboxvideo driver in autodetect code
|
||||
|
||||
---
|
||||
hw/xfree86/common/xf86AutoConfig.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c
|
||||
index 7f4ada8..4e944ea 100644
|
||||
--- a/hw/xfree86/common/xf86AutoConfig.c
|
||||
+++ b/hw/xfree86/common/xf86AutoConfig.c
|
||||
@@ -220,7 +220,7 @@ videoPtrToDriverList(struct pci_device *dev,
|
||||
case 0x1011: driverList[0] = "tga"; break;
|
||||
case 0x1023: driverList[0] = "trident"; break;
|
||||
case 0x100c: driverList[0] = "tseng"; break;
|
||||
- case 0x80ee: driverList[0] = "vboxvideo"; break;
|
||||
+ case 0x80ee: driverList[0] = "vesa"; break;
|
||||
case 0x15ad: driverList[0] = "vmware"; break;
|
||||
case 0x18ca:
|
||||
if (dev->device_id == 0x47)
|
||||
--
|
||||
1.7.0
|
||||
|
|
@ -1,142 +0,0 @@
|
|||
From b27f93c6dbe0a6e416db2c65738e996c70a403c1 Mon Sep 17 00:00:00 2001
|
||||
From: Fedora X Ninjas <airlied@redhat.com>
|
||||
Date: Thu, 6 May 2010 12:55:34 +1000
|
||||
Subject: [PATCH] xf86: allow for no outputs connected at startup operation.
|
||||
|
||||
When nothing is connected at startup and we canGrow, allow the server to start with a 1024x768 framebuffer, and when the drivers send hotplug events this will expand to the correct size dynamically.
|
||||
|
||||
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||||
---
|
||||
hw/xfree86/modes/xf86Crtc.c | 66 ++++++++++++++++++++++++++++++------------
|
||||
1 files changed, 47 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
|
||||
index 571ffd0..99082ec 100644
|
||||
--- a/hw/xfree86/modes/xf86Crtc.c
|
||||
+++ b/hw/xfree86/modes/xf86Crtc.c
|
||||
@@ -48,6 +48,8 @@
|
||||
|
||||
#include "xf86xv.h"
|
||||
|
||||
+#define NO_OUTPUT_DEFAULT_WIDTH 1024
|
||||
+#define NO_OUTPUT_DEFAULT_HEIGHT 768
|
||||
/*
|
||||
* Initialize xf86CrtcConfig structure
|
||||
*/
|
||||
@@ -1946,7 +1948,7 @@ xf86SetScrnInfoModes (ScrnInfoPtr scrn)
|
||||
#endif
|
||||
}
|
||||
|
||||
-static void
|
||||
+static Bool
|
||||
xf86CollectEnabledOutputs(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
|
||||
Bool *enabled)
|
||||
{
|
||||
@@ -1961,8 +1963,10 @@ xf86CollectEnabledOutputs(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
|
||||
"No outputs definitely connected, trying again...\n");
|
||||
|
||||
for (o = 0; o < config->num_output; o++)
|
||||
- enabled[o] = xf86OutputEnabled(config->output[o], FALSE);
|
||||
+ any_enabled |= enabled[o] = xf86OutputEnabled(config->output[o], FALSE);
|
||||
}
|
||||
+
|
||||
+ return any_enabled;
|
||||
}
|
||||
|
||||
static Bool
|
||||
@@ -2409,6 +2413,8 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
|
||||
Bool *enabled;
|
||||
int width, height;
|
||||
int i = scrn->scrnIndex;
|
||||
+ Bool have_outputs = TRUE;
|
||||
+ Bool ret;
|
||||
|
||||
/* Set up the device options */
|
||||
config->options = xnfalloc (sizeof (xf86DeviceOptions));
|
||||
@@ -2433,20 +2439,26 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
|
||||
modes = xnfcalloc (config->num_output, sizeof (DisplayModePtr));
|
||||
enabled = xnfcalloc (config->num_output, sizeof (Bool));
|
||||
|
||||
- xf86CollectEnabledOutputs(scrn, config, enabled);
|
||||
-
|
||||
- if (xf86TargetUserpref(scrn, config, modes, enabled, width, height))
|
||||
- xf86DrvMsg(i, X_INFO, "Using user preference for initial modes\n");
|
||||
- else if (xf86TargetRightOf(scrn, config, modes, enabled, width, height))
|
||||
- xf86DrvMsg(i, X_INFO, "Using spanning desktop for initial modes\n");
|
||||
- else if (xf86TargetPreferred(scrn, config, modes, enabled, width, height))
|
||||
- xf86DrvMsg(i, X_INFO, "Using exact sizes for initial modes\n");
|
||||
- else if (xf86TargetAspect(scrn, config, modes, enabled, width, height))
|
||||
- xf86DrvMsg(i, X_INFO, "Using fuzzy aspect match for initial modes\n");
|
||||
- else if (xf86TargetFallback(scrn, config, modes, enabled, width, height))
|
||||
- xf86DrvMsg(i, X_INFO, "Using sloppy heuristic for initial modes\n");
|
||||
- else
|
||||
- xf86DrvMsg(i, X_WARNING, "Unable to find initial modes\n");
|
||||
+ ret = xf86CollectEnabledOutputs(scrn, config, enabled);
|
||||
+ if (ret == FALSE && canGrow) {
|
||||
+ xf86DrvMsg(i, X_WARNING, "Unable to find connected outputs - setting %dx%d initial framebuffer\n",
|
||||
+ NO_OUTPUT_DEFAULT_WIDTH, NO_OUTPUT_DEFAULT_HEIGHT);
|
||||
+ have_outputs = FALSE;
|
||||
+ }
|
||||
+ else {
|
||||
+ if (xf86TargetUserpref(scrn, config, modes, enabled, width, height))
|
||||
+ xf86DrvMsg(i, X_INFO, "Using user preference for initial modes\n");
|
||||
+ else if (xf86TargetRightOf(scrn, config, modes, enabled, width, height))
|
||||
+ xf86DrvMsg(i, X_INFO, "Using spanning desktop for initial modes\n");
|
||||
+ else if (xf86TargetPreferred(scrn, config, modes, enabled, width, height))
|
||||
+ xf86DrvMsg(i, X_INFO, "Using exact sizes for initial modes\n");
|
||||
+ else if (xf86TargetAspect(scrn, config, modes, enabled, width, height))
|
||||
+ xf86DrvMsg(i, X_INFO, "Using fuzzy aspect match for initial modes\n");
|
||||
+ else if (xf86TargetFallback(scrn, config, modes, enabled, width, height))
|
||||
+ xf86DrvMsg(i, X_INFO, "Using sloppy heuristic for initial modes\n");
|
||||
+ else
|
||||
+ xf86DrvMsg(i, X_WARNING, "Unable to find initial modes\n");
|
||||
+ }
|
||||
|
||||
for (o = -1; nextEnabledOutput(config, enabled, &o); ) {
|
||||
if (!modes[o])
|
||||
@@ -2479,7 +2491,7 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
|
||||
/*
|
||||
* Assign CRTCs to fit output configuration
|
||||
*/
|
||||
- if (!xf86PickCrtcs (scrn, crtcs, modes, 0, width, height))
|
||||
+ if (have_outputs && !xf86PickCrtcs (scrn, crtcs, modes, 0, width, height))
|
||||
{
|
||||
xfree (crtcs);
|
||||
xfree (modes);
|
||||
@@ -2541,6 +2553,13 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
|
||||
*/
|
||||
xf86DefaultScreenLimits (scrn, &width, &height, canGrow);
|
||||
|
||||
+ if (have_outputs == FALSE) {
|
||||
+ if (width < NO_OUTPUT_DEFAULT_WIDTH && height < NO_OUTPUT_DEFAULT_HEIGHT) {
|
||||
+ width = NO_OUTPUT_DEFAULT_WIDTH;
|
||||
+ height = NO_OUTPUT_DEFAULT_HEIGHT;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
scrn->display->virtualX = width;
|
||||
scrn->display->virtualY = height;
|
||||
}
|
||||
@@ -2566,8 +2585,17 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
|
||||
width, height);
|
||||
}
|
||||
|
||||
- /* Mirror output modes to scrn mode list */
|
||||
- xf86SetScrnInfoModes (scrn);
|
||||
+ if (have_outputs) {
|
||||
+ /* Mirror output modes to scrn mode list */
|
||||
+ xf86SetScrnInfoModes (scrn);
|
||||
+ } else {
|
||||
+ /* Clear any existing modes from scrn->modes */
|
||||
+ while (scrn->modes != NULL)
|
||||
+ xf86DeleteMode(&scrn->modes, scrn->modes);
|
||||
+ scrn->modes = xf86ModesAdd(scrn->modes,
|
||||
+ xf86CVTMode(width, height, 60, 0, 0));
|
||||
+ }
|
||||
+
|
||||
|
||||
xfree (crtcs);
|
||||
xfree (modes);
|
||||
--
|
||||
1.7.0.1
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
From f22b6f8a5899f125de63738e69aaddc2dd0a5d0a Mon Sep 17 00:00:00 2001
|
||||
From: Ben Skeggs <bskeggs@redhat.com>
|
||||
Date: Mon, 7 Jun 2010 10:10:10 +1000
|
||||
Subject: [PATCH] randr: prevent an unnecessary screen resize with multiple displays
|
||||
|
||||
crtc->{x,y} is always 0 when xf86DefaultScreenLimits() is called, so we
|
||||
calculate too small an area for the initial framebuffer and force a resize
|
||||
to happen.
|
||||
|
||||
This commit fixes the code to use desired{X,Y} instead, which contains the
|
||||
initial output positions.
|
||||
|
||||
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||
---
|
||||
hw/xfree86/modes/xf86Crtc.c | 4 ++--
|
||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
|
||||
index 51e7b5a..c2ad7bc 100644
|
||||
--- a/hw/xfree86/modes/xf86Crtc.c
|
||||
+++ b/hw/xfree86/modes/xf86Crtc.c
|
||||
@@ -1041,8 +1041,8 @@ xf86DefaultScreenLimits (ScrnInfoPtr scrn, int *widthp, int *heightp,
|
||||
|
||||
if (crtc->enabled)
|
||||
{
|
||||
- crtc_width = crtc->x + xf86ModeWidth (&crtc->desiredMode, crtc->desiredRotation);
|
||||
- crtc_height = crtc->y + xf86ModeHeight (&crtc->desiredMode, crtc->desiredRotation);
|
||||
+ crtc_width = crtc->desiredX + xf86ModeWidth (&crtc->desiredMode, crtc->desiredRotation);
|
||||
+ crtc_height = crtc->desiredY + xf86ModeHeight (&crtc->desiredMode, crtc->desiredRotation);
|
||||
}
|
||||
if (!canGrow) {
|
||||
for (o = 0; o < config->num_output; o++)
|
||||
--
|
||||
1.6.6
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
From 57a188877b0472edb12bdf707b1550abbeb85af8 Mon Sep 17 00:00:00 2001
|
||||
From: Fedora X Ninjas <x@fedoraproject.org>
|
||||
Date: Wed, 17 Feb 2010 11:12:36 +1000
|
||||
Subject: [PATCH] Stick giant warning into logfiles about udev configuration changes.
|
||||
|
||||
Signed-off-by: Fedora X Ninjas <x@fedoraproject.org>
|
||||
---
|
||||
hw/xfree86/common/xf86Config.c | 13 +++++++++++++
|
||||
1 files changed, 13 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
|
||||
index 132e8bc..b1722cd 100644
|
||||
--- a/hw/xfree86/common/xf86Config.c
|
||||
+++ b/hw/xfree86/common/xf86Config.c
|
||||
@@ -1472,6 +1472,19 @@ checkCoreInputDevices(serverLayoutPtr servlayoutp, Bool implicitLayout)
|
||||
"input devices.\n\tIf no devices become available, "
|
||||
"reconfigure %s or disable AutoAddDevices.\n",
|
||||
config_backend, config_backend);
|
||||
+
|
||||
+ xf86Msg(X_INFO, "\n"
|
||||
+ "***************************************************************\n"
|
||||
+ "***************************************************************\n"
|
||||
+ "** Fedora switched to udev-based device detection with **\n"
|
||||
+ "** xorg-x11-server-1.7.99.901-1. Custom HAL configuration **\n"
|
||||
+ "** stored in /etc/hal/fdi/policy will not be seen by this **\n"
|
||||
+ "** server version. If you have such configuration you will **\n"
|
||||
+ "** need to update it to the new format. **\n"
|
||||
+ "** For more information, see the Fedora wiki page **\n"
|
||||
+ "** https://fedoraproject.org/wiki/Input_device_configuration **\n"
|
||||
+ "***************************************************************\n"
|
||||
+ "***************************************************************\n");
|
||||
#else
|
||||
xf86Msg(X_INFO, "Hotplugging is disabled and no input devices were configured.\n"
|
||||
"\tTry disabling AllowEmptyInput.\n");
|
||||
--
|
||||
1.6.6.1
|
||||
|
|
@ -1,909 +0,0 @@
|
|||
From deab888bb3bb2a56963da50ff551bd66fbd858a1 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Tue, 29 Jun 2010 13:49:27 +1000
|
||||
Subject: [PATCH 1/5] xkb: Mark switch case fallthrough with comment.
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
xkb/xkbActions.c | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c
|
||||
index 4c7bce2..6a7f36d 100644
|
||||
--- a/xkb/xkbActions.c
|
||||
+++ b/xkb/xkbActions.c
|
||||
@@ -625,6 +625,8 @@ _XkbFilterPointerBtn( XkbSrvInfoPtr xkbi,
|
||||
break;
|
||||
}
|
||||
xkbi->lockedPtrButtons&= ~(1<<button);
|
||||
+
|
||||
+ /* fallthrough */
|
||||
case XkbSA_PtrBtn:
|
||||
XkbDDXFakeDeviceButton(xkbi->device, 0, button);
|
||||
break;
|
||||
--
|
||||
1.7.1
|
||||
|
||||
From 50b6311dbd2594acc36d6856fdde8623459f1374 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Tue, 29 Jun 2010 12:12:53 +1000
|
||||
Subject: [PATCH 2/5] xkb: merge lockedPtrButtons state from all attached SDs.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Problem:
|
||||
lockedPtrButtons keeps the state of the buttons locked by a PointerKeys button
|
||||
press. Unconditionally clearing the bits may cause stuck buttons in this
|
||||
sequence of events:
|
||||
|
||||
1. type Shift + NumLock to enable PointerKeys
|
||||
2. type 0/Ins on keypad to emulate Button 1 press
|
||||
→ button1 press event to client
|
||||
3. press and release button 1 on physical mouse
|
||||
→ button1 release event to client
|
||||
|
||||
Button 1 on the MD is now stuck and cannot be released.
|
||||
|
||||
Cause:
|
||||
XKB PointerKeys button events are posted through the XTEST pointer device.
|
||||
Once a press is generated, the XTEST device's button is down. The DIX merges
|
||||
the button state of all attached SDs, hence the MD will have a button down
|
||||
while the XTEST device has a button down.
|
||||
|
||||
PointerKey button events are only generated on the master device to avoid
|
||||
duplicate events (see XkbFakeDeviceButton()). If the MD has the
|
||||
lockedPtrButtons bit cleared by a release event on a physical device, no
|
||||
such event is generated when a keyboard device triggers the PointerKey
|
||||
ButtonRelease trigger. Since the event - if generated - is posted through
|
||||
the XTEST pointer device, lack of a generated ButtonRelease event on the
|
||||
XTEST pointer device means the button is never released, resulting in the
|
||||
stuck button observed above.
|
||||
|
||||
Solution:
|
||||
This patch merges the MD's lockedPtrButtons with the one of all attached
|
||||
slave devices on release events. Thus, as long as one attached keyboard has
|
||||
a lockedPtrButtons bit set, this bit is kept in the MD. Once a PointerKey
|
||||
button is released on all keyboards, the matching release event is emulated
|
||||
from the MD through the XTEST pointer device, thus also releasing the button
|
||||
in the DIX.
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
include/xkbsrv.h | 3 +++
|
||||
xkb/xkbAccessX.c | 18 +++++++++++++++++-
|
||||
xkb/xkbActions.c | 8 ++++++++
|
||||
xkb/xkbUtils.c | 26 ++++++++++++++++++++++++++
|
||||
4 files changed, 54 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/include/xkbsrv.h b/include/xkbsrv.h
|
||||
index c0cd501..f0db0e4 100644
|
||||
--- a/include/xkbsrv.h
|
||||
+++ b/include/xkbsrv.h
|
||||
@@ -933,6 +933,9 @@ extern int XkbGetEffectiveGroup(
|
||||
XkbStatePtr /* xkbstate */,
|
||||
CARD8 /* keycode */);
|
||||
|
||||
+extern void XkbMergeLockedPtrBtns(
|
||||
+ DeviceIntPtr /* master */);
|
||||
+
|
||||
#include "xkbfile.h"
|
||||
#include "xkbrules.h"
|
||||
|
||||
diff --git a/xkb/xkbAccessX.c b/xkb/xkbAccessX.c
|
||||
index be1dcee..e3fdc06 100644
|
||||
--- a/xkb/xkbAccessX.c
|
||||
+++ b/xkb/xkbAccessX.c
|
||||
@@ -707,8 +707,24 @@ DeviceEvent *event = &ev->device_event;
|
||||
changed |= XkbPointerButtonMask;
|
||||
}
|
||||
else if (event->type == ET_ButtonRelease) {
|
||||
- if (xkbi)
|
||||
+ if (xkbi) {
|
||||
xkbi->lockedPtrButtons&= ~(1 << (event->detail.key & 0x7));
|
||||
+
|
||||
+ /* Merge this MD's lockedPtrButtons with the one of all
|
||||
+ * attached slave devices.
|
||||
+ * The DIX uses a merged button state for MDs, not
|
||||
+ * releasing buttons until the last SD has released
|
||||
+ * thenm. If we unconditionally clear the
|
||||
+ * lockedPtrButtons bit on the MD, a PointerKeys button
|
||||
+ * release on the SD keyboard won't generate the required fake button
|
||||
+ * event on the XTEST pointer, thus never processing the
|
||||
+ * button event in the DIX and the XTEST pointer's
|
||||
+ * buttons stay down - result is a stuck button.
|
||||
+ */
|
||||
+ if (IsMaster(dev))
|
||||
+ XkbMergeLockedPtrBtns(dev);
|
||||
+ }
|
||||
+
|
||||
changed |= XkbPointerButtonMask;
|
||||
}
|
||||
|
||||
diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c
|
||||
index 6a7f36d..ab52b6a 100644
|
||||
--- a/xkb/xkbActions.c
|
||||
+++ b/xkb/xkbActions.c
|
||||
@@ -626,6 +626,14 @@ _XkbFilterPointerBtn( XkbSrvInfoPtr xkbi,
|
||||
}
|
||||
xkbi->lockedPtrButtons&= ~(1<<button);
|
||||
|
||||
+ if (IsMaster(xkbi->device))
|
||||
+ {
|
||||
+ XkbMergeLockedPtrBtns(xkbi->device);
|
||||
+ /* One SD still has lock set, don't post event */
|
||||
+ if ((xkbi->lockedPtrButtons & (1 << button)) != 0)
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
/* fallthrough */
|
||||
case XkbSA_PtrBtn:
|
||||
XkbDDXFakeDeviceButton(xkbi->device, 0, button);
|
||||
diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
|
||||
index b1e0e55..d7d1935 100644
|
||||
--- a/xkb/xkbUtils.c
|
||||
+++ b/xkb/xkbUtils.c
|
||||
@@ -2190,3 +2190,29 @@ XkbGetEffectiveGroup(XkbSrvInfoPtr xkbi, XkbStatePtr xkbState, CARD8 keycode)
|
||||
|
||||
return effectiveGroup;
|
||||
}
|
||||
+
|
||||
+/* Merge the lockedPtrButtons from all attached SDs for the given master
|
||||
+ * device into the MD's state.
|
||||
+ */
|
||||
+void
|
||||
+XkbMergeLockedPtrBtns(DeviceIntPtr master)
|
||||
+{
|
||||
+ DeviceIntPtr d = inputInfo.devices;
|
||||
+ XkbSrvInfoPtr xkbi = NULL;
|
||||
+
|
||||
+ if (!IsMaster(master))
|
||||
+ return;
|
||||
+
|
||||
+ if (!master->key)
|
||||
+ return;
|
||||
+
|
||||
+ xkbi = master->key->xkbInfo;
|
||||
+ xkbi->lockedPtrButtons = 0;
|
||||
+
|
||||
+ for (; d; d = d->next) {
|
||||
+ if (IsMaster(d) || GetMaster(d, MASTER_KEYBOARD) != master || !d->key)
|
||||
+ continue;
|
||||
+
|
||||
+ xkbi->lockedPtrButtons |= d->key->xkbInfo->lockedPtrButtons;
|
||||
+ }
|
||||
+}
|
||||
--
|
||||
1.7.1
|
||||
|
||||
From 4a4224f5d786035af88c251a9ee177217e8f77fd Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Wed, 14 Apr 2010 10:54:29 +1000
|
||||
Subject: [PATCH 3/5] xkb: rename XkbFakeDeviceButton and XkbFakeDeviceMotion, move into xkbActions.c
|
||||
|
||||
The name XkbDDXFakeDeviceButton and XkbDDXFakeDeviceMotion is somewhat
|
||||
misleading, there's no DDX involved in the game at all anymore.
|
||||
|
||||
This removes XkbFakeDeviceMotion and XkbFakeDeviceButton from the API where
|
||||
it arguably shouldn't have been in the first place.
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
|
||||
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
|
||||
---
|
||||
include/xkbsrv.h | 13 -------
|
||||
xkb/Makefile.am | 4 +--
|
||||
xkb/ddxDevBtn.c | 69 --------------------------------------
|
||||
xkb/ddxFakeMtn.c | 64 -----------------------------------
|
||||
xkb/xkbActions.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++-------
|
||||
5 files changed, 85 insertions(+), 162 deletions(-)
|
||||
delete mode 100644 xkb/ddxDevBtn.c
|
||||
delete mode 100644 xkb/ddxFakeMtn.c
|
||||
|
||||
diff --git a/include/xkbsrv.h b/include/xkbsrv.h
|
||||
index f0db0e4..d1cbd1a 100644
|
||||
--- a/include/xkbsrv.h
|
||||
+++ b/include/xkbsrv.h
|
||||
@@ -768,19 +768,6 @@ extern _X_EXPORT void XkbDDXUpdateDeviceIndicators(
|
||||
CARD32 /* newState */
|
||||
);
|
||||
|
||||
-extern _X_EXPORT void XkbDDXFakePointerMotion(
|
||||
- DeviceIntPtr /* dev */,
|
||||
- unsigned int /* flags */,
|
||||
- int /* x */,
|
||||
- int /* y */
|
||||
-);
|
||||
-
|
||||
-extern _X_EXPORT void XkbDDXFakeDeviceButton(
|
||||
- DeviceIntPtr /* dev */,
|
||||
- Bool /* press */,
|
||||
- int /* button */
|
||||
-);
|
||||
-
|
||||
extern _X_EXPORT int XkbDDXTerminateServer(
|
||||
DeviceIntPtr /* dev */,
|
||||
KeyCode /* key */,
|
||||
diff --git a/xkb/Makefile.am b/xkb/Makefile.am
|
||||
index e54ce59..fb3ccbf 100644
|
||||
--- a/xkb/Makefile.am
|
||||
+++ b/xkb/Makefile.am
|
||||
@@ -5,11 +5,9 @@ AM_CFLAGS = $(DIX_CFLAGS)
|
||||
DDX_SRCS = \
|
||||
ddxBeep.c \
|
||||
ddxCtrls.c \
|
||||
- ddxFakeMtn.c \
|
||||
ddxLEDs.c \
|
||||
ddxLoad.c \
|
||||
- ddxList.c \
|
||||
- ddxDevBtn.c
|
||||
+ ddxList.c
|
||||
|
||||
DIX_SRCS = \
|
||||
xkb.c \
|
||||
diff --git a/xkb/ddxDevBtn.c b/xkb/ddxDevBtn.c
|
||||
deleted file mode 100644
|
||||
index b8a1255..0000000
|
||||
--- a/xkb/ddxDevBtn.c
|
||||
+++ /dev/null
|
||||
@@ -1,69 +0,0 @@
|
||||
-/************************************************************
|
||||
-Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc.
|
||||
-
|
||||
-Permission to use, copy, modify, and distribute this
|
||||
-software and its documentation for any purpose and without
|
||||
-fee is hereby granted, provided that the above copyright
|
||||
-notice appear in all copies and that both that copyright
|
||||
-notice and this permission notice appear in supporting
|
||||
-documentation, and that the name of Silicon Graphics not be
|
||||
-used in advertising or publicity pertaining to distribution
|
||||
-of the software without specific prior written permission.
|
||||
-Silicon Graphics makes no representation about the suitability
|
||||
-of this software for any purpose. It is provided "as is"
|
||||
-without any express or implied warranty.
|
||||
-
|
||||
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
||||
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
|
||||
-GRAPHICS BE LIABLE FOR 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.
|
||||
-
|
||||
-********************************************************/
|
||||
-
|
||||
-#ifdef HAVE_DIX_CONFIG_H
|
||||
-#include <dix-config.h>
|
||||
-#endif
|
||||
-
|
||||
-#include "inputstr.h"
|
||||
-#include <xkbsrv.h>
|
||||
-#include "mi.h"
|
||||
-
|
||||
-void
|
||||
-XkbDDXFakeDeviceButton(DeviceIntPtr dev,Bool press,int button)
|
||||
-{
|
||||
- EventListPtr events;
|
||||
- int nevents, i;
|
||||
- DeviceIntPtr ptr;
|
||||
-
|
||||
- /* If dev is a slave device, and the SD is attached, do nothing. If we'd
|
||||
- * post through the attached master pointer we'd get duplicate events.
|
||||
- *
|
||||
- * if dev is a master keyboard, post through the XTEST device
|
||||
- *
|
||||
- * if dev is a floating slave, post through the device itself.
|
||||
- */
|
||||
-
|
||||
- if (IsMaster(dev))
|
||||
- ptr = GetXTestDevice(GetMaster(dev, MASTER_POINTER));
|
||||
- else if (!dev->u.master)
|
||||
- ptr = dev;
|
||||
- else
|
||||
- return;
|
||||
-
|
||||
- events = InitEventList(GetMaximumEventsNum());
|
||||
- OsBlockSignals();
|
||||
- nevents = GetPointerEvents(events, ptr,
|
||||
- press ? ButtonPress : ButtonRelease, button,
|
||||
- 0 /* flags */, 0 /* first */,
|
||||
- 0 /* num_val */, NULL);
|
||||
- OsReleaseSignals();
|
||||
-
|
||||
- for (i = 0; i < nevents; i++)
|
||||
- mieqProcessDeviceEvent(ptr, (InternalEvent*)events[i].event, NULL);
|
||||
-
|
||||
- FreeEventList(events, GetMaximumEventsNum());
|
||||
-}
|
||||
diff --git a/xkb/ddxFakeMtn.c b/xkb/ddxFakeMtn.c
|
||||
deleted file mode 100644
|
||||
index b383716..0000000
|
||||
--- a/xkb/ddxFakeMtn.c
|
||||
+++ /dev/null
|
||||
@@ -1,64 +0,0 @@
|
||||
-/************************************************************
|
||||
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
|
||||
-
|
||||
-Permission to use, copy, modify, and distribute this
|
||||
-software and its documentation for any purpose and without
|
||||
-fee is hereby granted, provided that the above copyright
|
||||
-notice appear in all copies and that both that copyright
|
||||
-notice and this permission notice appear in supporting
|
||||
-documentation, and that the name of Silicon Graphics not be
|
||||
-used in advertising or publicity pertaining to distribution
|
||||
-of the software without specific prior written permission.
|
||||
-Silicon Graphics makes no representation about the suitability
|
||||
-of this software for any purpose. It is provided "as is"
|
||||
-without any express or implied warranty.
|
||||
-
|
||||
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
||||
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
|
||||
-GRAPHICS BE LIABLE FOR 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.
|
||||
-
|
||||
-********************************************************/
|
||||
-
|
||||
-#ifdef HAVE_DIX_CONFIG_H
|
||||
-#include <dix-config.h>
|
||||
-#endif
|
||||
-
|
||||
-#include "inputstr.h"
|
||||
-#include <xkbsrv.h>
|
||||
-#include "mi.h"
|
||||
-
|
||||
-void
|
||||
-XkbDDXFakePointerMotion(DeviceIntPtr dev, unsigned flags,int x,int y)
|
||||
-{
|
||||
- EventListPtr events;
|
||||
- int nevents, i;
|
||||
- DeviceIntPtr ptr;
|
||||
- int gpe_flags = 0;
|
||||
-
|
||||
- if (!dev->u.master)
|
||||
- ptr = dev;
|
||||
- else
|
||||
- ptr = GetXTestDevice(GetMaster(dev, MASTER_POINTER));
|
||||
-
|
||||
- if (flags & XkbSA_MoveAbsoluteX || flags & XkbSA_MoveAbsoluteY)
|
||||
- gpe_flags = POINTER_ABSOLUTE;
|
||||
- else
|
||||
- gpe_flags = POINTER_RELATIVE;
|
||||
-
|
||||
- events = InitEventList(GetMaximumEventsNum());
|
||||
- OsBlockSignals();
|
||||
- nevents = GetPointerEvents(events, ptr,
|
||||
- MotionNotify, 0,
|
||||
- gpe_flags, 0, 2, (int[]){x, y});
|
||||
- OsReleaseSignals();
|
||||
-
|
||||
- for (i = 0; i < nevents; i++)
|
||||
- mieqProcessDeviceEvent(ptr, (InternalEvent*)events[i].event, NULL);
|
||||
-
|
||||
- FreeEventList(events, GetMaximumEventsNum());
|
||||
-}
|
||||
diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c
|
||||
index ab52b6a..2817e39 100644
|
||||
--- a/xkb/xkbActions.c
|
||||
+++ b/xkb/xkbActions.c
|
||||
@@ -40,11 +40,15 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
#include <xkbsrv.h>
|
||||
#include "xkb.h"
|
||||
#include <ctype.h>
|
||||
+#include "mi.h"
|
||||
#define EXTENSION_EVENT_BASE 64
|
||||
|
||||
static int xkbDevicePrivateKeyIndex;
|
||||
DevPrivateKey xkbDevicePrivateKey = &xkbDevicePrivateKeyIndex;
|
||||
|
||||
+static void XkbFakeDeviceButton(DeviceIntPtr dev,Bool press,int button);
|
||||
+static void XkbFakePointerMotion(DeviceIntPtr dev, unsigned flags,int x,int y);
|
||||
+
|
||||
void
|
||||
xkbUnwrapProc(DeviceIntPtr device, DeviceHandleProc proc,
|
||||
pointer data)
|
||||
@@ -479,7 +483,7 @@ int dx,dy;
|
||||
dx= xkbi->mouseKeysDX;
|
||||
dy= xkbi->mouseKeysDY;
|
||||
}
|
||||
- XkbDDXFakePointerMotion(xkbi->device, xkbi->mouseKeysFlags,dx,dy);
|
||||
+ XkbFakePointerMotion(xkbi->device, xkbi->mouseKeysFlags,dx,dy);
|
||||
return xkbi->desc->ctrls->mk_interval;
|
||||
}
|
||||
|
||||
@@ -507,7 +511,7 @@ Bool accel;
|
||||
accel= ((pAction->ptr.flags&XkbSA_NoAcceleration)==0);
|
||||
x= XkbPtrActionX(&pAction->ptr);
|
||||
y= XkbPtrActionY(&pAction->ptr);
|
||||
- XkbDDXFakePointerMotion(xkbi->device, pAction->ptr.flags,x,y);
|
||||
+ XkbFakePointerMotion(xkbi->device, pAction->ptr.flags,x,y);
|
||||
AccessXCancelRepeatKey(xkbi,keycode);
|
||||
xkbi->mouseKeysAccel= accel&&
|
||||
(xkbi->desc->ctrls->enabled_ctrls&XkbMouseKeysAccelMask);
|
||||
@@ -554,7 +558,7 @@ _XkbFilterPointerBtn( XkbSrvInfoPtr xkbi,
|
||||
((pAction->btn.flags&XkbSA_LockNoLock)==0)) {
|
||||
xkbi->lockedPtrButtons|= (1<<button);
|
||||
AccessXCancelRepeatKey(xkbi,keycode);
|
||||
- XkbDDXFakeDeviceButton(xkbi->device, 1, button);
|
||||
+ XkbFakeDeviceButton(xkbi->device, 1, button);
|
||||
filter->upAction.type= XkbSA_NoAction;
|
||||
}
|
||||
break;
|
||||
@@ -565,12 +569,12 @@ _XkbFilterPointerBtn( XkbSrvInfoPtr xkbi,
|
||||
if (pAction->btn.count>0) {
|
||||
nClicks= pAction->btn.count;
|
||||
for (i=0;i<nClicks;i++) {
|
||||
- XkbDDXFakeDeviceButton(xkbi->device, 1, button);
|
||||
- XkbDDXFakeDeviceButton(xkbi->device, 0, button);
|
||||
+ XkbFakeDeviceButton(xkbi->device, 1, button);
|
||||
+ XkbFakeDeviceButton(xkbi->device, 0, button);
|
||||
}
|
||||
filter->upAction.type= XkbSA_NoAction;
|
||||
}
|
||||
- else XkbDDXFakeDeviceButton(xkbi->device, 1, button);
|
||||
+ else XkbFakeDeviceButton(xkbi->device, 1, button);
|
||||
}
|
||||
break;
|
||||
case XkbSA_SetPtrDflt:
|
||||
@@ -636,7 +640,7 @@ _XkbFilterPointerBtn( XkbSrvInfoPtr xkbi,
|
||||
|
||||
/* fallthrough */
|
||||
case XkbSA_PtrBtn:
|
||||
- XkbDDXFakeDeviceButton(xkbi->device, 0, button);
|
||||
+ XkbFakeDeviceButton(xkbi->device, 0, button);
|
||||
break;
|
||||
}
|
||||
filter->active = 0;
|
||||
@@ -974,7 +978,7 @@ int button;
|
||||
if ((pAction->devbtn.flags&XkbSA_LockNoLock)||
|
||||
BitIsOn(dev->button->down, button))
|
||||
return 0;
|
||||
- XkbDDXFakeDeviceButton(dev,TRUE,button);
|
||||
+ XkbFakeDeviceButton(dev,TRUE,button);
|
||||
filter->upAction.type= XkbSA_NoAction;
|
||||
break;
|
||||
case XkbSA_DeviceBtn:
|
||||
@@ -982,12 +986,12 @@ int button;
|
||||
int nClicks,i;
|
||||
nClicks= pAction->btn.count;
|
||||
for (i=0;i<nClicks;i++) {
|
||||
- XkbDDXFakeDeviceButton(dev,TRUE,button);
|
||||
- XkbDDXFakeDeviceButton(dev,FALSE,button);
|
||||
+ XkbFakeDeviceButton(dev,TRUE,button);
|
||||
+ XkbFakeDeviceButton(dev,FALSE,button);
|
||||
}
|
||||
filter->upAction.type= XkbSA_NoAction;
|
||||
}
|
||||
- else XkbDDXFakeDeviceButton(dev,TRUE,button);
|
||||
+ else XkbFakeDeviceButton(dev,TRUE,button);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1006,10 +1010,10 @@ int button;
|
||||
if ((filter->upAction.devbtn.flags&XkbSA_LockNoUnlock)||
|
||||
!BitIsOn(dev->button->down, button))
|
||||
return 0;
|
||||
- XkbDDXFakeDeviceButton(dev,FALSE,button);
|
||||
+ XkbFakeDeviceButton(dev,FALSE,button);
|
||||
break;
|
||||
case XkbSA_DeviceBtn:
|
||||
- XkbDDXFakeDeviceButton(dev,FALSE,button);
|
||||
+ XkbFakeDeviceButton(dev,FALSE,button);
|
||||
break;
|
||||
}
|
||||
filter->active = 0;
|
||||
@@ -1326,3 +1330,70 @@ xkbStateNotify sn;
|
||||
return;
|
||||
}
|
||||
|
||||
+static void
|
||||
+XkbFakePointerMotion(DeviceIntPtr dev, unsigned flags,int x,int y)
|
||||
+{
|
||||
+ EventListPtr events;
|
||||
+ int nevents, i;
|
||||
+ DeviceIntPtr ptr;
|
||||
+ int gpe_flags = 0;
|
||||
+
|
||||
+ if (!dev->u.master)
|
||||
+ ptr = dev;
|
||||
+ else
|
||||
+ ptr = GetXTestDevice(GetMaster(dev, MASTER_POINTER));
|
||||
+
|
||||
+ if (flags & XkbSA_MoveAbsoluteX || flags & XkbSA_MoveAbsoluteY)
|
||||
+ gpe_flags = POINTER_ABSOLUTE;
|
||||
+ else
|
||||
+ gpe_flags = POINTER_RELATIVE;
|
||||
+
|
||||
+ events = InitEventList(GetMaximumEventsNum());
|
||||
+ OsBlockSignals();
|
||||
+ nevents = GetPointerEvents(events, ptr,
|
||||
+ MotionNotify, 0,
|
||||
+ gpe_flags, 0, 2, (int[]){x, y});
|
||||
+ OsReleaseSignals();
|
||||
+
|
||||
+ for (i = 0; i < nevents; i++)
|
||||
+ mieqProcessDeviceEvent(ptr, (InternalEvent*)events[i].event, NULL);
|
||||
+
|
||||
+ FreeEventList(events, GetMaximumEventsNum());
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+XkbFakeDeviceButton(DeviceIntPtr dev,Bool press,int button)
|
||||
+{
|
||||
+ EventListPtr events;
|
||||
+ int nevents, i;
|
||||
+ DeviceIntPtr ptr;
|
||||
+
|
||||
+ /* If dev is a slave device, and the SD is attached, do nothing. If we'd
|
||||
+ * post through the attached master pointer we'd get duplicate events.
|
||||
+ *
|
||||
+ * if dev is a master keyboard, post through the XTEST device
|
||||
+ *
|
||||
+ * if dev is a floating slave, post through the device itself.
|
||||
+ */
|
||||
+
|
||||
+ if (IsMaster(dev))
|
||||
+ ptr = GetXTestDevice(GetMaster(dev, MASTER_POINTER));
|
||||
+ else if (!dev->u.master)
|
||||
+ ptr = dev;
|
||||
+ else
|
||||
+ return;
|
||||
+
|
||||
+ events = InitEventList(GetMaximumEventsNum());
|
||||
+ OsBlockSignals();
|
||||
+ nevents = GetPointerEvents(events, ptr,
|
||||
+ press ? ButtonPress : ButtonRelease, button,
|
||||
+ 0 /* flags */, 0 /* first */,
|
||||
+ 0 /* num_val */, NULL);
|
||||
+ OsReleaseSignals();
|
||||
+
|
||||
+
|
||||
+ for (i = 0; i < nevents; i++)
|
||||
+ mieqProcessDeviceEvent(ptr, (InternalEvent*)events[i].event, NULL);
|
||||
+
|
||||
+ FreeEventList(events, GetMaximumEventsNum());
|
||||
+}
|
||||
--
|
||||
1.7.1
|
||||
|
||||
From dcb46252f959893f1934232698e2ae26390a8a5b Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Tue, 29 Jun 2010 15:24:51 +1000
|
||||
Subject: [PATCH 4/5] xkb: emulate PointerKeys events only on the master device.
|
||||
|
||||
This patch replicates the behaviour for button events. Only generate a
|
||||
PointerKeys motion event on the master device, not on the slave device.
|
||||
Fixes the current issue of PointerKey motion events generating key events as
|
||||
well.
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
xkb/xkbActions.c | 9 ++++-----
|
||||
1 files changed, 4 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c
|
||||
index 2817e39..391c375 100644
|
||||
--- a/xkb/xkbActions.c
|
||||
+++ b/xkb/xkbActions.c
|
||||
@@ -496,9 +496,6 @@ _XkbFilterPointerMove( XkbSrvInfoPtr xkbi,
|
||||
int x,y;
|
||||
Bool accel;
|
||||
|
||||
- if (xkbi->device == inputInfo.keyboard)
|
||||
- return 0;
|
||||
-
|
||||
if (filter->keycode==0) { /* initial press */
|
||||
filter->keycode = keycode;
|
||||
filter->active = 1;
|
||||
@@ -1338,10 +1335,12 @@ XkbFakePointerMotion(DeviceIntPtr dev, unsigned flags,int x,int y)
|
||||
DeviceIntPtr ptr;
|
||||
int gpe_flags = 0;
|
||||
|
||||
- if (!dev->u.master)
|
||||
+ if (IsMaster(dev))
|
||||
+ ptr = GetXTestDevice(GetMaster(dev, MASTER_POINTER));
|
||||
+ else if (!dev->u.master)
|
||||
ptr = dev;
|
||||
else
|
||||
- ptr = GetXTestDevice(GetMaster(dev, MASTER_POINTER));
|
||||
+ return;
|
||||
|
||||
if (flags & XkbSA_MoveAbsoluteX || flags & XkbSA_MoveAbsoluteY)
|
||||
gpe_flags = POINTER_ABSOLUTE;
|
||||
--
|
||||
1.7.1
|
||||
|
||||
From 40941fb2e9ae763add7b74850e8a0471ac754db6 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Thu, 1 Jul 2010 12:44:57 +1000
|
||||
Subject: [PATCH 5/5] xkb: release XTEST pointer buttons on physical releases. (#28808)
|
||||
|
||||
If a button release event is posted for the MD pointer, post a release event
|
||||
through the matching XTEST device. This way, a client who posts a button
|
||||
press through the XTEST extension cannot inadvertedly lock the button.
|
||||
|
||||
This behaviour is required for historical reasons, until server 1.7 the core
|
||||
pointer would release a button press on physical events, regardless of the
|
||||
XTEST state. Clients seem to rely on this behaviour, causing seemingly stuck
|
||||
grabs.
|
||||
|
||||
The merged behaviour is kept for multiple keyboard PointerKey events, if two
|
||||
physical keyboards hold the button down as a result of PointerKey actions,
|
||||
the button is not released until the last keyboard releases the button.
|
||||
|
||||
X.Org Bug 28808 <http://bugs.freedesktop.org/show_bug.cgi?id=28808>
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
include/xkbsrv.h | 6 ++++++
|
||||
xkb/xkbAccessX.c | 23 ++++++++++-------------
|
||||
xkb/xkbActions.c | 4 ++--
|
||||
3 files changed, 18 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/include/xkbsrv.h b/include/xkbsrv.h
|
||||
index d1cbd1a..a96ca56 100644
|
||||
--- a/include/xkbsrv.h
|
||||
+++ b/include/xkbsrv.h
|
||||
@@ -923,6 +923,12 @@ extern int XkbGetEffectiveGroup(
|
||||
extern void XkbMergeLockedPtrBtns(
|
||||
DeviceIntPtr /* master */);
|
||||
|
||||
+extern void XkbFakeDeviceButton(
|
||||
+ DeviceIntPtr /* dev */,
|
||||
+ int /* press */,
|
||||
+ int /* button */);
|
||||
+
|
||||
+
|
||||
#include "xkbfile.h"
|
||||
#include "xkbrules.h"
|
||||
|
||||
diff --git a/xkb/xkbAccessX.c b/xkb/xkbAccessX.c
|
||||
index e3fdc06..d3f9652 100644
|
||||
--- a/xkb/xkbAccessX.c
|
||||
+++ b/xkb/xkbAccessX.c
|
||||
@@ -710,19 +710,16 @@ DeviceEvent *event = &ev->device_event;
|
||||
if (xkbi) {
|
||||
xkbi->lockedPtrButtons&= ~(1 << (event->detail.key & 0x7));
|
||||
|
||||
- /* Merge this MD's lockedPtrButtons with the one of all
|
||||
- * attached slave devices.
|
||||
- * The DIX uses a merged button state for MDs, not
|
||||
- * releasing buttons until the last SD has released
|
||||
- * thenm. If we unconditionally clear the
|
||||
- * lockedPtrButtons bit on the MD, a PointerKeys button
|
||||
- * release on the SD keyboard won't generate the required fake button
|
||||
- * event on the XTEST pointer, thus never processing the
|
||||
- * button event in the DIX and the XTEST pointer's
|
||||
- * buttons stay down - result is a stuck button.
|
||||
- */
|
||||
- if (IsMaster(dev))
|
||||
- XkbMergeLockedPtrBtns(dev);
|
||||
+ if (IsMaster(dev))
|
||||
+ {
|
||||
+ DeviceIntPtr source;
|
||||
+ int rc;
|
||||
+ rc = dixLookupDevice(&source, event->sourceid, serverClient, DixWriteAccess);
|
||||
+ if (rc != Success)
|
||||
+ ErrorF("[xkb] bad sourceid '%d' on button release event.\n", event->sourceid);
|
||||
+ else if (!IsXTestDevice(source, GetMaster(dev, MASTER_POINTER)))
|
||||
+ XkbFakeDeviceButton(dev, FALSE, event->detail.key);
|
||||
+ }
|
||||
}
|
||||
|
||||
changed |= XkbPointerButtonMask;
|
||||
diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c
|
||||
index 391c375..5d40199 100644
|
||||
--- a/xkb/xkbActions.c
|
||||
+++ b/xkb/xkbActions.c
|
||||
@@ -46,7 +46,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
static int xkbDevicePrivateKeyIndex;
|
||||
DevPrivateKey xkbDevicePrivateKey = &xkbDevicePrivateKeyIndex;
|
||||
|
||||
-static void XkbFakeDeviceButton(DeviceIntPtr dev,Bool press,int button);
|
||||
+void XkbFakeDeviceButton(DeviceIntPtr dev,Bool press,int button);
|
||||
static void XkbFakePointerMotion(DeviceIntPtr dev, unsigned flags,int x,int y);
|
||||
|
||||
void
|
||||
@@ -1360,7 +1360,7 @@ XkbFakePointerMotion(DeviceIntPtr dev, unsigned flags,int x,int y)
|
||||
FreeEventList(events, GetMaximumEventsNum());
|
||||
}
|
||||
|
||||
-static void
|
||||
+void
|
||||
XkbFakeDeviceButton(DeviceIntPtr dev,Bool press,int button)
|
||||
{
|
||||
EventListPtr events;
|
||||
--
|
||||
1.7.1
|
||||
|
||||
From 7273832bcdc6f43e9a5a8fdbb56844466efb710a Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Fri, 23 Jul 2010 11:46:30 +1000
|
||||
Subject: [PATCH 1/3] xkb: post-fix PointerKeys button events with a DeviceChangedEvent.
|
||||
|
||||
commit 14327858391ebe929b806efb53ad79e789361883
|
||||
xkb: release XTEST pointer buttons on physical releases. (#28808)
|
||||
revealed a bug with the XTEST/PointerKeys interaction.
|
||||
|
||||
Events resulting from PointerKeys are injected into the event processing
|
||||
stream, not appended to the event queue. The events generated for the fake
|
||||
button press include a DeviceChangedEvent (DCE), a raw button event and the
|
||||
button event itself. The DCE causes the master to switch classes to the
|
||||
attached XTEST pointer device.
|
||||
|
||||
Once the fake button is processed, normal event processing continues with
|
||||
events in the EQ. The master still contains the XTEST classes, causing some
|
||||
events to be dropped if e.g. the number of valuators of the event in the
|
||||
queue exceeds the XTEST device's number of valuators.
|
||||
|
||||
Example: the EQ contains the following events, processed one-by-one, left to
|
||||
right.
|
||||
|
||||
[DCE (dev)][Btn down][Btn up][Motion][Motion][...]
|
||||
^ XkbFakeDeviceButton injects [DCE (XTEST)][Btn up]
|
||||
|
||||
Thus the event sequence processed looks like this:
|
||||
|
||||
[DCE (dev)][Btn down][Btn up][DCE (XTEST)][Btn up][Motion][Motion][...]
|
||||
|
||||
The first DCE causes the master to switch to the device. The button up event
|
||||
injects a DCE to the XTEST device, causing the following Motion events to be
|
||||
processed with the master still being on XTEST classes.
|
||||
|
||||
This patch post-fixes the injected event sequence with a DCE to restore the
|
||||
classes of the original slave device, resulting in an event sequence like
|
||||
this:
|
||||
[DCE (dev)][Btn down][Btn up][DCE (XTEST)][Btn up][DCE (dev)][Motion][Motion]
|
||||
|
||||
Note that this is a simplified description. The event sequence injected by
|
||||
the PointerKeys code is injected for the master device only and the matching
|
||||
slave device that caused the injection has already finished processing on
|
||||
the slave. Furthermore, the injection happens as part of the the XKB layer,
|
||||
before the unwrapping of the processInputProc takes us into the DIX where
|
||||
the DCE is actually handled.
|
||||
|
||||
Bug reproducible with a device that reports more than 2 valuators. Simply
|
||||
cause button releases on the device and wait for a "too many valuators"
|
||||
warning message.
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
xkb/xkbActions.c | 26 +++++++++++++++++++-------
|
||||
1 files changed, 19 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c
|
||||
index 5d40199..2afd46d 100644
|
||||
--- a/xkb/xkbActions.c
|
||||
+++ b/xkb/xkbActions.c
|
||||
@@ -1365,34 +1365,46 @@ XkbFakeDeviceButton(DeviceIntPtr dev,Bool press,int button)
|
||||
{
|
||||
EventListPtr events;
|
||||
int nevents, i;
|
||||
- DeviceIntPtr ptr;
|
||||
+ DeviceIntPtr ptr, mpointer, lastSlave;
|
||||
|
||||
/* If dev is a slave device, and the SD is attached, do nothing. If we'd
|
||||
* post through the attached master pointer we'd get duplicate events.
|
||||
*
|
||||
* if dev is a master keyboard, post through the XTEST device
|
||||
- *
|
||||
* if dev is a floating slave, post through the device itself.
|
||||
+ *
|
||||
+ * The event is injected into the event processing, not the EQ. Thus,
|
||||
+ * ensure that we restore the master after the event sequence to the
|
||||
+ * original set of classes. Otherwise, the master remains on the XTEST
|
||||
+ * classes and drops events that don't fit into the XTEST layout (e.g.
|
||||
+ * events with more than 2 valuators).
|
||||
+ * To do so, we remember the lastSlave that posted through the master
|
||||
+ * and add a DeviceChangedEvent to the end of the list.
|
||||
*/
|
||||
|
||||
- if (IsMaster(dev))
|
||||
- ptr = GetXTestDevice(GetMaster(dev, MASTER_POINTER));
|
||||
- else if (!dev->u.master)
|
||||
+ if (IsMaster(dev)) {
|
||||
+ mpointer = GetMaster(dev, MASTER_POINTER);
|
||||
+ lastSlave = mpointer->u.lastSlave;
|
||||
+ ptr = GetXTestDevice(mpointer);
|
||||
+ } else if (!dev->u.master)
|
||||
ptr = dev;
|
||||
else
|
||||
return;
|
||||
|
||||
- events = InitEventList(GetMaximumEventsNum());
|
||||
+ events = InitEventList(GetMaximumEventsNum() + 1);
|
||||
OsBlockSignals();
|
||||
nevents = GetPointerEvents(events, ptr,
|
||||
press ? ButtonPress : ButtonRelease, button,
|
||||
0 /* flags */, 0 /* first */,
|
||||
0 /* num_val */, NULL);
|
||||
+ if (IsMaster(dev) && (lastSlave && lastSlave != ptr))
|
||||
+ CreateClassesChangedEvent(&events[nevents++], mpointer,
|
||||
+ lastSlave, DEVCHANGE_POINTER_EVENT);
|
||||
OsReleaseSignals();
|
||||
|
||||
|
||||
for (i = 0; i < nevents; i++)
|
||||
mieqProcessDeviceEvent(ptr, (InternalEvent*)events[i].event, NULL);
|
||||
|
||||
- FreeEventList(events, GetMaximumEventsNum());
|
||||
+ FreeEventList(events, GetMaximumEventsNum() + 1);
|
||||
}
|
||||
--
|
||||
1.7.2
|
||||
|
||||
From 817e031a996a5f5aa16fc789d7e570cc589d96cb Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Wed, 28 Jul 2010 14:24:59 +1000
|
||||
Subject: [PATCH 3/3] Xi: reset the unused classes pointer after copying
|
||||
|
||||
After copying the unused_classes into the device, reset the original
|
||||
pointer. Otherwise we have two pointers pointing to the same field and both
|
||||
get freed on device removal.
|
||||
|
||||
Some classes already have this behaviour since 51c8fd69.
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
Xi/exevents.c | 6 ++++++
|
||||
1 files changed, 6 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/Xi/exevents.c b/Xi/exevents.c
|
||||
index 566b0ef..a6160dd 100644
|
||||
--- a/Xi/exevents.c
|
||||
+++ b/Xi/exevents.c
|
||||
@@ -227,6 +227,7 @@ DeepCopyFeedbackClasses(DeviceIntPtr from, DeviceIntPtr to)
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
to->intfeed = classes->intfeed;
|
||||
+ classes->intfeed = NULL;
|
||||
}
|
||||
|
||||
i = &to->intfeed;
|
||||
@@ -263,6 +264,7 @@ DeepCopyFeedbackClasses(DeviceIntPtr from, DeviceIntPtr to)
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
to->stringfeed = classes->stringfeed;
|
||||
+ classes->stringfeed = NULL;
|
||||
}
|
||||
|
||||
s = &to->stringfeed;
|
||||
@@ -299,6 +301,7 @@ DeepCopyFeedbackClasses(DeviceIntPtr from, DeviceIntPtr to)
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
to->bell = classes->bell;
|
||||
+ classes->bell = NULL;
|
||||
}
|
||||
|
||||
b = &to->bell;
|
||||
@@ -336,6 +339,7 @@ DeepCopyFeedbackClasses(DeviceIntPtr from, DeviceIntPtr to)
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
to->leds = classes->leds;
|
||||
+ classes->leds = NULL;
|
||||
}
|
||||
|
||||
l = &to->leds;
|
||||
@@ -387,6 +391,7 @@ DeepCopyKeyboardClasses(DeviceIntPtr from, DeviceIntPtr to)
|
||||
to->kbdfeed = classes->kbdfeed;
|
||||
if (!to->kbdfeed)
|
||||
InitKeyboardDeviceStruct(to, NULL, NULL, NULL);
|
||||
+ classes->kbdfeed = NULL;
|
||||
}
|
||||
|
||||
k = &to->kbdfeed;
|
||||
@@ -517,6 +522,7 @@ DeepCopyPointerClasses(DeviceIntPtr from, DeviceIntPtr to)
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
to->ptrfeed = classes->ptrfeed;
|
||||
+ classes->ptrfeed = NULL;
|
||||
}
|
||||
|
||||
p = &to->ptrfeed;
|
||||
--
|
||||
1.7.2
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
From 536626891b60039c0f3f9b4cd96156e9fe810f39 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Airlie <airlied@redhat.com>
|
||||
Date: Fri, 17 Aug 2012 09:49:24 +1000
|
||||
Subject: [PATCH] autobind GPUs to the screen, (v2)
|
||||
|
||||
this is racy and really not what we want for hotplug going forward,
|
||||
but until DE support is in GNOME its probably for the best.
|
||||
|
||||
v2: fix if config or slave config is NULL
|
||||
DO NOT UPSTREAM.
|
||||
---
|
||||
hw/xfree86/common/xf86Init.c | 12 ++++++++++++
|
||||
hw/xfree86/common/xf86platformBus.c | 3 +++
|
||||
hw/xfree86/modes/xf86Crtc.c | 28 ++++++++++++++++++++++++++++
|
||||
3 files changed, 43 insertions(+)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
|
||||
index d231ced..89629c1 100644
|
||||
--- a/hw/xfree86/common/xf86Init.c
|
||||
+++ b/hw/xfree86/common/xf86Init.c
|
||||
@@ -361,6 +361,16 @@ xf86CreateRootWindow(WindowPtr pWin)
|
||||
return ret;
|
||||
}
|
||||
|
||||
+extern void xf86AutoConfigOutputDevice(ScrnInfoPtr pScrn, ScrnInfoPtr master);
|
||||
+static void
|
||||
+xf86AutoConfigOutputDevices(void)
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ for (i = 0; i < xf86NumGPUScreens; i++)
|
||||
+ xf86AutoConfigOutputDevice(xf86GPUScreens[i], xf86Screens[0]);
|
||||
+}
|
||||
+
|
||||
static void
|
||||
InstallSignalHandlers(void)
|
||||
{
|
||||
@@ -926,6 +936,8 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
|
||||
for (i = 0; i < xf86NumGPUScreens; i++)
|
||||
AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen);
|
||||
|
||||
+ xf86AutoConfigOutputDevices();
|
||||
+
|
||||
xf86VGAarbiterWrapFunctions();
|
||||
if (sigio_blocked)
|
||||
OsReleaseSIGIO();
|
||||
diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
|
||||
index a73aea2..3810076 100644
|
||||
--- a/hw/xfree86/common/xf86platformBus.c
|
||||
+++ b/hw/xfree86/common/xf86platformBus.c
|
||||
@@ -387,6 +387,8 @@ xf86platformProbeDev(DriverPtr drvp)
|
||||
return foundScreen;
|
||||
}
|
||||
|
||||
+extern void xf86AutoConfigOutputDevice(ScrnInfoPtr pScrn, ScrnInfoPtr master);
|
||||
+
|
||||
int
|
||||
xf86platformAddDevice(int index)
|
||||
{
|
||||
@@ -446,6 +448,7 @@ xf86platformAddDevice(int index)
|
||||
|
||||
/* attach unbound to 0 protocol screen */
|
||||
AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen);
|
||||
+ xf86AutoConfigOutputDevice(xf86GPUScreens[i], xf86Screens[0]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
|
||||
index 8f05c53..ba84e6b 100644
|
||||
--- a/hw/xfree86/modes/xf86Crtc.c
|
||||
+++ b/hw/xfree86/modes/xf86Crtc.c
|
||||
@@ -3321,3 +3321,31 @@ xf86DetachAllCrtc(ScrnInfoPtr scrn)
|
||||
crtc->x = crtc->y = 0;
|
||||
}
|
||||
}
|
||||
+
|
||||
+
|
||||
+void xf86AutoConfigOutputDevice(ScrnInfoPtr pScrn, ScrnInfoPtr master)
|
||||
+{
|
||||
+ RRProviderPtr master_provider;
|
||||
+ xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(master);
|
||||
+ xf86CrtcConfigPtr slave_config = XF86_CRTC_CONFIG_PTR(pScrn);
|
||||
+
|
||||
+ if (!config || !slave_config)
|
||||
+ return;
|
||||
+
|
||||
+ master_provider = config->randr_provider;
|
||||
+
|
||||
+ if ((master->capabilities & RR_Capability_SinkOffload) &&
|
||||
+ pScrn->capabilities & RR_Capability_SourceOffload) {
|
||||
+ /* source offload */
|
||||
+
|
||||
+ DetachUnboundGPU(pScrn->pScreen);
|
||||
+ AttachOffloadGPU(master->pScreen, pScrn->pScreen);
|
||||
+ slave_config->randr_provider->offload_sink = master_provider;
|
||||
+ } else if ((master->capabilities & RR_Capability_SourceOutput) &&
|
||||
+ pScrn->capabilities & RR_Capability_SinkOutput) {
|
||||
+ /* sink offload */
|
||||
+ DetachUnboundGPU(pScrn->pScreen);
|
||||
+ AttachOutputGPU(master->pScreen, pScrn->pScreen);
|
||||
+ slave_config->randr_provider->output_source = master_provider;
|
||||
+ }
|
||||
+}
|
||||
--
|
||||
1.7.10.2
|
||||
|
|
@ -4,8 +4,8 @@
|
|||
###############################################################################
|
||||
|
||||
name = xorg-x11-server
|
||||
version = 1.8.2
|
||||
release = 7
|
||||
version = 1.13.2
|
||||
release = 1
|
||||
|
||||
maintainer = Stefan Schantl <stefan.schantl@ipfire.org>
|
||||
groups = X/Server
|
||||
|
@ -20,8 +20,9 @@ description
|
|||
upon.
|
||||
end
|
||||
|
||||
sources_dl = http://ftp.x.org/pub/individual/xserver/
|
||||
sources = xorg-server-%{version}.tar.bz2
|
||||
thisapp = xorg-server-%{version}
|
||||
|
||||
source_dl = http://ftp.x.org/pub/individual/xserver/
|
||||
|
||||
build
|
||||
requires
|
||||
|
@ -47,29 +48,25 @@ build
|
|||
libudev-devel
|
||||
libxcb-devel
|
||||
libxkbfile-devel
|
||||
mesa-devel
|
||||
mesa-devel >= 9.0.2
|
||||
openssl-devel
|
||||
pixman-devel
|
||||
pkg-config
|
||||
xorg-x11-font-utils-devel
|
||||
xorg-x11-util-macros
|
||||
xorg-x11-proto-devel
|
||||
xorg-x11-proto-devel >= 7.7
|
||||
xorg-x11-xtrans-devel
|
||||
end
|
||||
|
||||
DIR_APP = %{DIR_SRC}/xorg-server-%{version}
|
||||
|
||||
CFLAGS += -Wstrict-overflow -rdynamic
|
||||
|
||||
configure_options += \
|
||||
--enable-xvfb \
|
||||
--enable-xsdl \
|
||||
--enable-xfake \
|
||||
--enable-xfbdev \
|
||||
--enable-xorg \
|
||||
--disable-static \
|
||||
--disable-xnest \
|
||||
--disable-xdmx \
|
||||
--disable-xephyr \
|
||||
--with-pic \
|
||||
--enable-maintainer-mode \
|
||||
|
@ -100,7 +97,6 @@ build
|
|||
-e "s/^CCASFLAGS.*/& -Wl,-z,lazy/" \
|
||||
\
|
||||
hw/xfree86/dixmods/Makefile \
|
||||
hw/xfree86/dixmods/extmod/Makefile \
|
||||
hw/xfree86/dri/Makefile \
|
||||
hw/xfree86/dri2/Makefile \
|
||||
hw/xfree86/exa/Makefile \
|
||||
|
@ -110,7 +106,6 @@ build
|
|||
hw/xfree86/shadowfb/Makefile \
|
||||
hw/xfree86/vbe/Makefile \
|
||||
hw/xfree86/vgahw/Makefile \
|
||||
hw/xfree86/xaa/Makefile
|
||||
end
|
||||
|
||||
make_install_targets += \
|
||||
|
@ -133,10 +128,21 @@ end
|
|||
packages
|
||||
package %{name}
|
||||
requires
|
||||
mesa
|
||||
pixman
|
||||
udev
|
||||
xkeyboard-config
|
||||
end
|
||||
|
||||
recommends
|
||||
xorg-x11-drv-ati
|
||||
xorg-x11-drv-evdev
|
||||
xorg-x11-drv-intel
|
||||
xorg-x11-drv-keyboard
|
||||
xorg-x11-drv-modesetting
|
||||
xorg-x11-drv-mouse
|
||||
xorg-x11-drv-nouveau
|
||||
xorg-x11-drv-vesa
|
||||
xorg-x11-drv-vmware
|
||||
xorg-x11-fonts
|
||||
xorg-x11-font-utils
|
||||
xorg-x11-xkb-utils
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = xorg-x11-util-macros
|
||||
version = 1.10.0
|
||||
version = 1.17
|
||||
release = 1
|
||||
arch = noarch
|
||||
|
||||
|
@ -19,17 +19,16 @@ description
|
|||
packages that comprise the X Window System.
|
||||
end
|
||||
|
||||
thisapp = util-macros-%{version}
|
||||
|
||||
source_dl = http://ftp.x.org/pub/individual/util/
|
||||
|
||||
sources = util-macros-%{version}.tar.bz2
|
||||
|
||||
build
|
||||
requires
|
||||
pkg-config
|
||||
end
|
||||
|
||||
DIR_APP = %{DIR_SRC}/util-macros-%{version}
|
||||
|
||||
configure_options += \
|
||||
--disable-static
|
||||
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
Index: xinit-1.3.1/xinit.c
|
||||
===================================================================
|
||||
--- xinit-1.3.1.orig/xinit.c
|
||||
+++ xinit-1.3.1/xinit.c
|
||||
@@ -91,6 +91,8 @@ char xserverrcbuf[256];
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
+#define OK_EXIT 0
|
||||
+#define ERR_EXIT 1
|
||||
|
||||
static char *default_server = "X";
|
||||
static char *default_display = ":0"; /* choose most efficient */
|
||||
@@ -561,6 +563,7 @@ startClient(char *client[])
|
||||
{
|
||||
clientpid = fork();
|
||||
if (clientpid == 0) {
|
||||
+ int fd;
|
||||
set_environment();
|
||||
setWindowPath();
|
||||
|
||||
@@ -568,7 +571,16 @@ startClient(char *client[])
|
||||
Error("cannot change uid");
|
||||
_exit(EXIT_FAILURE);
|
||||
}
|
||||
- setpgid(0, getpid());
|
||||
+ fd = open ("/dev/null", O_RDONLY);
|
||||
+
|
||||
+ if (fd < 0) {
|
||||
+ Error("cannot open /dev/null: %s\n", strerror(errno));
|
||||
+ _exit(ERR_EXIT);
|
||||
+ }
|
||||
+ close (STDIN_FILENO);
|
||||
+ dup2 (fd, STDIN_FILENO);
|
||||
+ close (fd);
|
||||
+ setsid();
|
||||
Execute(client);
|
||||
Error("Unable to run program \"%s\"", client[0]);
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
diff -Nur xinit-1.3.2.orig/startx.cpp xinit-1.3.2/startx.cpp
|
||||
--- xinit-1.3.2.orig/startx.cpp 2012-09-29 11:55:06.661264745 -0600
|
||||
+++ xinit-1.3.2/startx.cpp 2012-09-29 11:56:24.849771316 -0600
|
||||
@@ -80,6 +80,7 @@
|
||||
defaultdisplay=":0"
|
||||
clientargs=""
|
||||
serverargs=""
|
||||
+tty_num=$(tty | grep -oE '[0-9]+$')
|
||||
|
||||
#ifdef __APPLE__
|
||||
|
||||
@@ -135,6 +136,15 @@
|
||||
enable_xauth=1
|
||||
#endif
|
||||
|
||||
+if [ x"$tty_num" != x ]; then
|
||||
+ # Specify TTY number directly to avoid recognizing startx session as
|
||||
+ # inactive: RHBZ#820675
|
||||
+ serverargs=${serverargs}" vt"${tty_num}
|
||||
+else
|
||||
+ echo "Error getting tty num"
|
||||
+ exit 1
|
||||
+fi
|
||||
+
|
||||
XCOMM Automatically determine an unused $DISPLAY
|
||||
d=0
|
||||
while true ; do
|
|
@ -4,7 +4,7 @@
|
|||
###############################################################################
|
||||
|
||||
name = xorg-x11-xinit
|
||||
version = 1.2.1
|
||||
version = 1.3.2
|
||||
release = 1
|
||||
thisapp = xinit-%{version}
|
||||
|
||||
|
@ -21,9 +21,17 @@ source_dl = http://ftp.x.org/pub/individual/app/
|
|||
|
||||
build
|
||||
requires
|
||||
autoconf
|
||||
automake
|
||||
libX11-devel
|
||||
libtool
|
||||
xorg-x11-util-macros
|
||||
end
|
||||
|
||||
prepare_cmds
|
||||
# Regenerate build system.
|
||||
autoreconf -vfi
|
||||
end
|
||||
end
|
||||
|
||||
packages
|
||||
|
|
Loading…
Reference in New Issue