diff --git a/.gitignore b/.gitignore index 995843a..9645991 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ xorg-server-1.9.1.tar.bz2 /xorg-server-1.12.1.tar.bz2 /xorg-server-1.12.2.tar.bz2 /xorg-server-1.12.3.tar.bz2 +/xorg-server-20120717.tar.xz diff --git a/commitid b/commitid index 2c5bd89..220e259 100644 --- a/commitid +++ b/commitid @@ -1 +1 @@ -d53235af85d50774c68347720ce132daf9a5bc49 +77de2994774e7be24a0bad521180628feb1027c6 diff --git a/sources b/sources index f382ffb..6937562 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -65a53b11bc01dcc97ee9b201dc620c32 xorg-server-1.12.3.tar.bz2 +961bb1ecade0ade9a4f0c04be063142c xorg-server-20120717.tar.xz diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 4530285..f522904 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -9,7 +9,7 @@ # check out the master branch, pull, cherry-pick, and push. FIXME describe # rebasing, add convenience 'make' targets maybe. -#define gitdate 20120215 +%define gitdate 20120717 %define stable_abi 1 %if !0%{?gitdate} || %{stable_abi} @@ -19,9 +19,9 @@ %define ansic_major 0 %define ansic_minor 4 -%define videodrv_major 12 +%define videodrv_major 13 %define videodrv_minor 0 -%define xinput_major 16 +%define xinput_major 18 %define xinput_minor 0 %define extension_major 6 %define extension_minor 0 @@ -47,7 +47,7 @@ Summary: X.Org X11 X server Name: xorg-x11-server -Version: 1.12.3 +Version: 1.12.99.902 Release: 1%{?gitdate:.%{gitdate}}%{dist} URL: http://www.x.org License: MIT @@ -91,7 +91,6 @@ Patch5002: xserver-1.4.99-ssh-isnt-local.patch Patch6011: xserver-1.6.0-less-acpi-brokenness.patch # ajax needs to upstream this -Patch6027: xserver-1.6.0-displayfd.patch Patch6030: xserver-1.6.99-right-of.patch #Patch6044: xserver-1.6.99-hush-prerelease-warning.patch @@ -99,10 +98,6 @@ Patch6030: xserver-1.6.99-right-of.patch # RedHat/Fedora-specific patch Patch7013: xserver-1.12-Xext-fix-selinux-build-failure.patch -# backport pci slot claiming fix for kms drivers -Patch7015: xserver-fix-pci-slot-claims.patch -# backport modesetting fallback driver -Patch7016: xserver-1.12-modesetting-fallback.patch # needed when building without xorg (aka s390x) Patch7017: xserver-1.12.2-xorg-touch-test.patch @@ -495,11 +490,6 @@ rm -rf $RPM_BUILD_ROOT %dir %{_libdir}/xorg/modules/drivers %dir %{_libdir}/xorg/modules/extensions %{_libdir}/xorg/modules/extensions/libglx.so -%{_libdir}/xorg/modules/extensions/libdri.so -%{_libdir}/xorg/modules/extensions/libdri2.so -%{_libdir}/xorg/modules/extensions/libdbe.so -%{_libdir}/xorg/modules/extensions/libextmod.so -%{_libdir}/xorg/modules/extensions/librecord.so %dir %{_libdir}/xorg/modules/input %{_libdir}/xorg/modules/libfbdevhw.so %{_libdir}/xorg/modules/libexa.so @@ -581,6 +571,9 @@ rm -rf $RPM_BUILD_ROOT %{xserver_source_dir} %changelog +* Wed Jul 18 2012 Dave Airlie 1.12.99.902-1 +- server 1.12.99.902 + * Mon Jul 09 2012 Peter Hutterer 1.12.3-1 - server 1.12.3 diff --git a/xserver-1.12-modesetting-fallback.patch b/xserver-1.12-modesetting-fallback.patch deleted file mode 100644 index 2808d9f..0000000 --- a/xserver-1.12-modesetting-fallback.patch +++ /dev/null @@ -1,32 +0,0 @@ -From a2a02882ab65133e6c0c69db1f38bc20b406236f Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Sun, 6 May 2012 17:35:34 +0100 -Subject: [PATCH] xfree86: add modesetting driver to fallback list on Linux - -Add the modesetting driver to the fallback list on Linux, after vesa -before fbdev. - -Acked-by: Peter Hutterer -Signed-off-by: Dave Airlie ---- - hw/xfree86/common/xf86AutoConfig.c | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c -index 43c746b..d0eb0af 100644 ---- a/hw/xfree86/common/xf86AutoConfig.c -+++ b/hw/xfree86/common/xf86AutoConfig.c -@@ -270,6 +270,10 @@ listPossibleVideoDrivers(char *matches[], int nmatches) - #endif - } - -+#if defined(__linux__) -+ matches[i++] = xnfstrdup("modesetting"); -+#endif -+ - #if !defined(sun) - /* Fallback to platform default frame buffer driver */ - if (i < (nmatches - 1)) { --- -1.7.7.6 - diff --git a/xserver-1.12.2-xorg-touch-test.patch b/xserver-1.12.2-xorg-touch-test.patch index fb4adad..b3daca5 100644 --- a/xserver-1.12.2-xorg-touch-test.patch +++ b/xserver-1.12.2-xorg-touch-test.patch @@ -1,14 +1,15 @@ -From ed61aafc4e2b2856955528ba8142075ce53d6dd9 Mon Sep 17 00:00:00 2001 -From: Dan HorĂ¡k +From cb26473121e35fed89050f1514bb37aa48b452ad Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Fri, 15 Jun 2012 06:25:58 -0400 Subject: [PATCH] build the touch test only when building Xorg +Signed-off-by: Fedora X Ninjas --- test/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Makefile.am b/test/Makefile.am -index 32be00d..93a102a 100644 +index aa018c9..b323a40 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,11 +1,11 @@ @@ -20,11 +21,11 @@ index 32be00d..93a102a 100644 # Tests that require at least some DDX functions in order to fully link # For now, requires xf86 ddx, could be adjusted to use another SUBDIRS += xi2 --noinst_PROGRAMS += xkb input xtest misc fixes xfree86 -+noinst_PROGRAMS += xkb input xtest misc fixes xfree86 touch +-noinst_PROGRAMS += xkb input xtest misc fixes xfree86 hashtabletest os signal-logging ++noinst_PROGRAMS += xkb input xtest misc fixes xfree86 hashtabletest os signal-logging touch endif check_LTLIBRARIES = libxservertest.la -- -1.7.10.2 +1.7.10.4 diff --git a/xserver-1.6.0-displayfd.patch b/xserver-1.6.0-displayfd.patch deleted file mode 100644 index 9e63767..0000000 --- a/xserver-1.6.0-displayfd.patch +++ /dev/null @@ -1,203 +0,0 @@ -From 247319fe3750671cd962df2c12548affb0351775 Mon Sep 17 00:00:00 2001 -From: Chase Douglas -Date: Wed, 4 Apr 2012 15:29:42 -0700 -Subject: [PATCH 3/7] os: Add -displayfd option - -This option specifies a file descriptor in the launching process. X -will scan for an available display number and write that number back to -the launching process, at the same time as SIGUSR1 generation. This -means display managers don't need to guess at available display numbers. -As a consequence, if X fails to start when using -displayfd, it's not -because the display was in use, so there's no point in retrying the X -launch on a higher display number. - -Signed-off-by: Adam Jackson -Signed-off-by: Chase Douglas -Reviewed-by: Julien Cristau -Tested-by: Julien Cristau -Reviewed-by: Alan Coopersmith -Signed-off-by: Peter Hutterer ---- - dix/globals.c | 1 + - include/opaque.h | 1 + - man/Xserver.man | 7 ++++++ - os/connection.c | 68 ++++++++++++++++++++++++++++++++++++++---------------- - os/utils.c | 9 ++++++++ - 5 files changed, 66 insertions(+), 20 deletions(-) - -diff --git a/dix/globals.c b/dix/globals.c -index c0cae15..db113ca 100644 ---- a/dix/globals.c -+++ b/dix/globals.c -@@ -128,6 +128,7 @@ int defaultColorVisualClass = -1; - int monitorResolution = 0; - - char *display; -+int displayfd; - char *ConnectionInfo; - - CARD32 TimeOutValue = DEFAULT_TIMEOUT * MILLI_PER_SECOND; -diff --git a/include/opaque.h b/include/opaque.h -index 9ca408a..b76ab6e 100644 ---- a/include/opaque.h -+++ b/include/opaque.h -@@ -50,6 +50,7 @@ extern _X_EXPORT int ScreenSaverAllowExposures; - extern _X_EXPORT int defaultScreenSaverBlanking; - extern _X_EXPORT int defaultScreenSaverAllowExposures; - extern _X_EXPORT char *display; -+extern _X_EXPORT int displayfd; - - extern _X_EXPORT int defaultBackingStore; - extern _X_EXPORT Bool disableBackingStore; -diff --git a/man/Xserver.man b/man/Xserver.man -index 0cd9b94..8d243d6 100644 ---- a/man/Xserver.man -+++ b/man/Xserver.man -@@ -127,6 +127,13 @@ Not obeyed by all servers. - .B \-core - causes the server to generate a core dump on fatal errors. - .TP 8 -+.B \-displayfd \fIfd\fP -+specifies a file descriptor in the launching process. Rather than specify -+a display number, the X server will attempt to listen on successively higher -+display numbers, and upon finding a free one, will write the port number back -+on this file descriptor as a newline-terminated string. The \-pn option is -+ignored when using \-displayfd. -+.TP 8 - .B \-deferglyphs \fIwhichfonts\fP - specifies the types of fonts for which the server should attempt to use - deferred glyph loading. \fIwhichfonts\fP can be all (all fonts), -diff --git a/os/connection.c b/os/connection.c -index 1099752..039942f 100644 ---- a/os/connection.c -+++ b/os/connection.c -@@ -142,6 +142,7 @@ Bool AnyClientsWriteBlocked; /* true if some client blocked on write */ - static Bool RunFromSmartParent; /* send SIGUSR1 to parent process */ - Bool RunFromSigStopParent; /* send SIGSTOP to our own process; Upstart (or - equivalent) will send SIGCONT back. */ -+static char dynamic_display[7]; /* display name */ - Bool PartialNetwork; /* continue even if unable to bind all addrs */ - static Pid_t ParentProcess; - -@@ -350,6 +351,10 @@ void - NotifyParentProcess(void) - { - #if !defined(WIN32) -+ if (dynamic_display[0]) { -+ write(displayfd, dynamic_display, strlen(dynamic_display)); -+ close(displayfd); -+ } - if (RunFromSmartParent) { - if (ParentProcess > 1) { - kill(ParentProcess, SIGUSR1); -@@ -360,6 +365,18 @@ NotifyParentProcess(void) - #endif - } - -+static Bool -+TryCreateSocket(int num, int *partial) -+{ -+ char port[20]; -+ -+ snprintf(port, sizeof(port), "%d", num); -+ -+ return (_XSERVTransMakeAllCOTSServerListeners(port, partial, -+ &ListenTransCount, -+ &ListenTransConns) >= 0); -+} -+ - /***************** - * CreateWellKnownSockets - * At initialization, create the sockets to listen on for new clients. -@@ -370,7 +387,6 @@ CreateWellKnownSockets(void) - { - int i; - int partial; -- char port[20]; - - FD_ZERO(&AllSockets); - FD_ZERO(&AllClients); -@@ -386,29 +402,41 @@ CreateWellKnownSockets(void) - - FD_ZERO(&WellKnownConnections); - -- snprintf(port, sizeof(port), "%d", atoi(display)); -- -- if ((_XSERVTransMakeAllCOTSServerListeners(port, &partial, -- &ListenTransCount, -- &ListenTransConns) >= 0) && -- (ListenTransCount >= 1)) { -- if (!PartialNetwork && partial) { -- FatalError("Failed to establish all listening sockets"); -+ /* display is initialized to "0" by main(). It is then set to the display -+ * number if specified on the command line, or to NULL when the -displayfd -+ * option is used. */ -+ if (display) { -+ if (TryCreateSocket(atoi(display), &partial) && -+ ListenTransCount >= 1) -+ if (!PartialNetwork && partial) -+ FatalError ("Failed to establish all listening sockets"); -+ } -+ else { /* -displayfd */ -+ Bool found = 0; -+ for (i = 0; i < 65535 - X_TCP_PORT; i++) { -+ if (TryCreateSocket(i, &partial) && !partial) { -+ found = 1; -+ break; -+ } -+ else -+ CloseWellKnownConnections(); - } -- else { -- ListenTransFds = malloc(ListenTransCount * sizeof(int)); -+ if (!found) -+ FatalError("Failed to find a socket to listen on"); -+ snprintf(dynamic_display, sizeof(dynamic_display), "%d", i); -+ display = dynamic_display; -+ } - -- for (i = 0; i < ListenTransCount; i++) { -- int fd = _XSERVTransGetConnectionNumber(ListenTransConns[i]); -+ ListenTransFds = malloc(ListenTransCount * sizeof (int)); - -- ListenTransFds[i] = fd; -- FD_SET(fd, &WellKnownConnections); -+ for (i = 0; i < ListenTransCount; i++) { -+ int fd = _XSERVTransGetConnectionNumber(ListenTransConns[i]); - -- if (!_XSERVTransIsLocal(ListenTransConns[i])) { -- DefineSelf(fd); -- } -- } -- } -+ ListenTransFds[i] = fd; -+ FD_SET(fd, &WellKnownConnections); -+ -+ if (!_XSERVTransIsLocal(ListenTransConns[i])) -+ DefineSelf (fd); - } - - if (!XFD_ANYSET(&WellKnownConnections)) -diff --git a/os/utils.c b/os/utils.c -index 30592d2..3a1ef93 100644 ---- a/os/utils.c -+++ b/os/utils.c -@@ -659,6 +659,15 @@ ProcessCommandLine(int argc, char *argv[]) - else - UseMsg(); - } -+ else if (strcmp(argv[i], "-displayfd") == 0) { -+ if (++i < argc) { -+ displayfd = atoi(argv[i]); -+ display = NULL; -+ nolock = TRUE; -+ } -+ else -+ UseMsg(); -+ } - #ifdef DPMSExtension - else if (strcmp(argv[i], "dpms") == 0) - /* ignored for compatibility */ ; --- -1.7.10.1 - diff --git a/xserver-fix-pci-slot-claims.patch b/xserver-fix-pci-slot-claims.patch deleted file mode 100644 index cac27f2..0000000 --- a/xserver-fix-pci-slot-claims.patch +++ /dev/null @@ -1,143 +0,0 @@ -From 39f73e813f7d404498629f6104a9003d092af28d Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Tue, 8 May 2012 13:01:12 +0100 -Subject: [PATCH] xf86/pci: fix slot claiming counting. - -Currently if we claim a slot for a PCI driver, we never let it go properly, -this prevents the fallback probe from reusing the slot, even though it -isn't claimed for that pci slot. - -So if you set the modesetting driver to point at a specific kms device, -that isn't a PCI device (i.e. USB dongle), then the modesetting driver -loads, the pci probe tries to bind the config slot to the primary PCI -device, however we then check the kms device bus id to discover it -isn't valid. However we don't remove the claim on the slot. Next the -old probe function is called and there is no slots to claim. - -This patch fixes that and converts the pciSlotClaimed boolean into -a counter, and changes the unclaim api to take a device pointer -to remove from the entity. - -Reviewed-by: Adam Jackson -Signed-off-by: Dave Airlie ---- - hw/xfree86/common/xf86.h | 4 ++-- - hw/xfree86/common/xf86Bus.c | 20 ++++++++++++++++++++ - hw/xfree86/common/xf86Priv.h | 1 + - hw/xfree86/common/xf86pciBus.c | 10 ++++++---- - 4 files changed, 29 insertions(+), 6 deletions(-) - -diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h -index fc4c34e..e6d41d6 100644 ---- a/hw/xfree86/common/xf86.h -+++ b/hw/xfree86/common/xf86.h -@@ -97,12 +97,12 @@ extern _X_EXPORT Bool VTSwitchEnabled; /* kbd driver */ - /* PCI related */ - #ifdef XSERVER_LIBPCIACCESS - #include --extern _X_EXPORT Bool pciSlotClaimed; -+extern _X_EXPORT int pciSlotClaimed; - - extern _X_EXPORT Bool xf86CheckPciSlot(const struct pci_device *); - extern _X_EXPORT int xf86ClaimPciSlot(struct pci_device *, DriverPtr drvp, - int chipset, GDevPtr dev, Bool active); --extern _X_EXPORT void xf86UnclaimPciSlot(struct pci_device *); -+extern _X_EXPORT void xf86UnclaimPciSlot(struct pci_device *, GDevPtr dev); - extern _X_EXPORT Bool xf86ParsePciBusString(const char *busID, int *bus, - int *device, int *func); - extern _X_EXPORT Bool xf86ComparePciBusString(const char *busID, int bus, -diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c -index b176e8c..b876434 100644 ---- a/hw/xfree86/common/xf86Bus.c -+++ b/hw/xfree86/common/xf86Bus.c -@@ -420,6 +420,26 @@ xf86AddDevToEntity(int entityIndex, GDevPtr dev) - dev->claimed = TRUE; - } - -+ -+void -+xf86RemoveDevFromEntity(int entityIndex, GDevPtr dev) -+{ -+ EntityPtr pEnt; -+ int i, j; -+ if (entityIndex >= xf86NumEntities) -+ return; -+ -+ pEnt = xf86Entities[entityIndex]; -+ for (i = 0; i < pEnt->numInstances; i++) { -+ if (pEnt->devices[i] == dev) { -+ for (j = i; j < pEnt->numInstances - 1; j++) -+ pEnt->devices[j] = pEnt->devices[j + 1]; -+ break; -+ } -+ } -+ pEnt->numInstances--; -+ dev->claimed = FALSE; -+} - /* - * xf86GetEntityInfo() -- This function hands information from the - * EntityRec struct to the drivers. The EntityRec structure itself -diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h -index 8d9cb55..6c5efea 100644 ---- a/hw/xfree86/common/xf86Priv.h -+++ b/hw/xfree86/common/xf86Priv.h -@@ -116,6 +116,7 @@ extern _X_EXPORT void xf86AccessLeave(void); - extern _X_EXPORT void xf86PostProbe(void); - extern _X_EXPORT void xf86ClearEntityListForScreen(int scrnIndex); - extern _X_EXPORT void xf86AddDevToEntity(int entityIndex, GDevPtr dev); -+extern _X_EXPORT void xf86RemoveDevFromEntity(int entityIndex, GDevPtr dev); - - /* xf86Config.c */ - -diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c -index e52f1da..d758260 100644 ---- a/hw/xfree86/common/xf86pciBus.c -+++ b/hw/xfree86/common/xf86pciBus.c -@@ -52,7 +52,7 @@ - #define PCI_VENDOR_GENERIC 0x00FF - - /* Bus-specific globals */ --Bool pciSlotClaimed = FALSE; -+int pciSlotClaimed = 0; - - #define PCIINFOCLASSES(c) \ - ( (((c) & 0x00ff0000) == (PCI_CLASS_PREHISTORIC << 16)) \ -@@ -223,7 +223,7 @@ xf86ClaimPciSlot(struct pci_device *d, DriverPtr drvp, - p->inUse = FALSE; - if (dev) - xf86AddDevToEntity(num, dev); -- pciSlotClaimed = TRUE; -+ pciSlotClaimed++; - - return num; - } -@@ -235,7 +235,7 @@ xf86ClaimPciSlot(struct pci_device *d, DriverPtr drvp, - * Unclaim PCI slot, e.g. if probing failed, so that a different driver can claim. - */ - void --xf86UnclaimPciSlot(struct pci_device *d) -+xf86UnclaimPciSlot(struct pci_device *d, GDevPtr dev) - { - int i; - -@@ -244,6 +244,8 @@ xf86UnclaimPciSlot(struct pci_device *d) - - if ((p->bus.type == BUS_PCI) && (p->bus.id.pci == d)) { - /* Probably the slot should be deallocated? */ -+ xf86RemoveDevFromEntity(i, dev); -+ pciSlotClaimed--; - p->bus.type = BUS_NONE; - return; - } -@@ -537,7 +539,7 @@ xf86PciProbeDev(DriverPtr drvp) - foundScreen = TRUE; - } - else -- xf86UnclaimPciSlot(pPci); -+ xf86UnclaimPciSlot(pPci, devList[i]); - } - - break; --- -1.7.7.6 -